From: Florin Coras Date: Thu, 13 Aug 2020 01:58:25 +0000 (-0700) Subject: vcl: minimize vpp to vcl rx events X-Git-Tag: v21.01-rc0~112 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=c34118b5915bb2f4e55accaaf9045c05426104b4;p=vpp.git vcl: minimize vpp to vcl rx events Type: improvement Signed-off-by: Florin Coras Change-Id: I2015162bd315927e45b9fe583324b1458fe69d8f --- diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index 1622409c0f9..d52d9a995a0 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -1941,7 +1941,17 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n, n_read = app_recv_stream_raw (rx_fifo, buf, n, 0, peek); if (svm_fifo_is_empty_cons (rx_fifo)) - svm_fifo_unset_event (s->rx_fifo); + { + svm_fifo_unset_event (s->rx_fifo); + if (!svm_fifo_is_empty_cons (rx_fifo) + && svm_fifo_set_event (s->rx_fifo) && is_nonblocking) + { + session_event_t *e; + vec_add2 (wrk->unhandled_evts_vector, e, 1); + e->event_type = SESSION_IO_EVT_RX; + e->session_index = s->session_index; + } + } /* Cut-through sessions might request tx notifications on rx fifos */ if (PREDICT_FALSE (rx_fifo->want_deq_ntf))