vcl svm: fix rx event loss 59/28459/2
authorhanlin <hanlin_wang@163.com>
Mon, 11 May 2020 14:20:37 +0000 (22:20 +0800)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Tue, 18 Aug 2020 19:47:21 +0000 (19:47 +0000)
commitacf0bd5567884abd1ad19804aa0fabe03fd43a88
treef331720b553c93376bd3e75b5b361fe87db7efd3
parentf89bbaac78afa057a52bfe4ab41dcecf60139bd2
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>
(cherry picked from commit d0e646f6892e9c85278c9538760a8940c86dcdbb)
src/vcl/vppcom.c