vcl svm: fix rx event loss 74/27074/2
authorhanlin <hanlin_wang@163.com>
Mon, 11 May 2020 14:20:37 +0000 (22:20 +0800)
committerFlorin Coras <florin.coras@gmail.com>
Sat, 16 May 2020 22:09:05 +0000 (22:09 +0000)
commit8337806b5f03b6603a0e24ae7971672e1a7476ab
treed098d61dc0578b46251e409079093e08fc4c1751
parent765ef37670a4c32ccd3da345197e2b103d1a22b0
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
Ticket: VPP-1873
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