On 8/2/22 03:40, Stephen Hemminger wrote: > On Tue, 2 Aug 2022 02:49:36 +0200 > Claudio Fontana <cfont...@suse.de> wrote: > >> This is an alternative, more general fix compared with PATCH v1, >> and fixes style issues in v2. >> >> The series fixes a segmentation fault in the OVS PMD thread when >> resynchronizing with QEMU after the guest application has been killed >> with SIGKILL (patch 1/2), >> >> The segmentation fault can be caused by the guest DPDK application, >> which is able this way to crash the OVS process on the host, >> see the backtrace in patch 1/2. >> >> Patch 2/2 is an additional improvement in the current error handling. > > Checking for NULL and 0 is good on host side. > But guest should probably not be sending such a useless request?
Right, I focused on hardening the host side, as that is what the customer required. This happens specifically when the guest application goes away abruptly and has no chance to signal anything (SIGKILL), and at restart issues a virtio reset on the device, which in qemu causes also a (actually two) virtio_net set_status, which attempt to stop the queues (twice). DPDK seems to think at that point that it needs to drain the queue, and tries to process MAX_PKT_BURST buffers ("about to dequeue 32 buffers"), then calls fill_vec_buf_split and gets absolutely nothing. I think this should also address the reports in this thread: https://inbox.dpdk.org/dev/sa1pr08mb713373b0d19329c38c7527bb83...@sa1pr08mb7133.namprd08.prod.outlook.com/ in addition to my specific customer request, Thanks, Claudio