From: Florin Coras Date: Mon, 5 Aug 2019 16:39:47 +0000 (-0700) Subject: svm: fix fifo growth on dequeue with drop X-Git-Tag: v20.01-rc0~14 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F68%2F21068%2F3;p=vpp.git svm: fix fifo growth on dequeue with drop Type:fix Change-Id: I39c339abf1b51105ef1bcf3d6f0f4f6ded54f32d Signed-off-by: Florin Coras --- diff --git a/src/svm/svm_fifo.c b/src/svm/svm_fifo.c index 56f53a3d339..b6f0df7d88d 100644 --- a/src/svm/svm_fifo.c +++ b/src/svm/svm_fifo.c @@ -967,6 +967,9 @@ svm_fifo_dequeue_drop (svm_fifo_t * f, u32 len) if (!svm_fifo_chunk_includes_pos (f->head_chunk, head)) f->head_chunk = svm_fifo_find_chunk (f, head); + if (PREDICT_FALSE (f->flags & SVM_FIFO_F_GROW)) + svm_fifo_try_grow (f, head); + /* store-rel: consumer owned index (paired with load-acq in producer) */ clib_atomic_store_rel_n (&f->head, head); @@ -982,6 +985,9 @@ svm_fifo_dequeue_drop_all (svm_fifo_t * f) if (!svm_fifo_chunk_includes_pos (f->head_chunk, tail)) f->head_chunk = svm_fifo_find_chunk (f, tail); + if (PREDICT_FALSE (f->flags & SVM_FIFO_F_GROW)) + svm_fifo_try_grow (f, tail); + /* store-rel: consumer owned index (paired with load-acq in producer) */ clib_atomic_store_rel_n (&f->head, tail); }