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);
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);
}