vcl svm: fix rx event loss 03/27003/7
authorhanlin <hanlin_wang@163.com>
Mon, 11 May 2020 14:20:37 +0000 (22:20 +0800)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 14 May 2020 14:36:51 +0000 (14:36 +0000)
commitd0e646f6892e9c85278c9538760a8940c86dcdbb
treed9a836aaedc10e8c0016b2ca109bf10f55fa08fd
parent219fbb228f5274d2db740139a0d3258902370165
vcl svm: fix rx event loss

When vcl_epoll_wait_handle_mq handles rx events exceeding maxevents, VPP will not signal because cursize > 0, and the remaining rx events cannot be triggered because the eventfd event has been read. Therefore, we should dequeue all events until cursize = 0. And then handle msg up to maxevents with vcl_epoll_wait_handle_mq_event and those beyond with vcl_handle_mq_event.

Type: fix
Signed-off-by: hanlin <hanlin_wang@163.com>
Change-Id: I8a0c87cb41c837deb8284b40f668cc3c7d9d6e56
Signed-off-by: hanlin <hanlin_wang@163.com>
src/vcl/vppcom.c