vcl: set min threshold for tx ntf 48/39448/5
authorFlorin Coras <fcoras@cisco.com>
Mon, 28 Aug 2023 06:14:50 +0000 (23:14 -0700)
committerDave Wallace <dwallacelf@gmail.com>
Fri, 1 Sep 2023 02:31:42 +0000 (02:31 +0000)
Make sure there's at least 3% space in the tx fifo before notifying vcl
of a tx event. The threshold is somewhat arbibrary but for a 4M fifo, it
now means that ~120kB of space should be available.

Should help minimize the amount of tx notifications generated by
session layer when apps are faster.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I11dd0931dca8f989000a2481f1f495bd267589c4

src/vcl/vcl_private.h

index 8345e34..41a11b7 100644 (file)
@@ -675,7 +675,11 @@ vcl_session_add_want_deq_ntf (vcl_session_t *s, svm_fifo_deq_ntf_t evt)
 {
   svm_fifo_t *txf = vcl_session_is_ct (s) ? s->ct_tx_fifo : s->tx_fifo;
   if (txf)
-    svm_fifo_add_want_deq_ntf (txf, evt);
+    {
+      svm_fifo_add_want_deq_ntf (txf, evt);
+      /* Request tx notification only if 3% of fifo is empty */
+      svm_fifo_set_deq_thresh (txf, 0.03 * svm_fifo_size (txf));
+    }
 }
 
 static inline void