From c34118b5915bb2f4e55accaaf9045c05426104b4 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 12 Aug 2020 18:58:25 -0700 Subject: vcl: minimize vpp to vcl rx events Type: improvement Signed-off-by: Florin Coras Change-Id: I2015162bd315927e45b9fe583324b1458fe69d8f --- src/vcl/vppcom.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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)) -- cgit 1.2.3-korg