Re: [PATCH net 1/3] virtio-net: make refill work a per receive queue work
From: Bui Quang Minh <hidden>
Date: 2025-12-24 16:43:30
Also in:
bpf, lkml, virtualization
From: Bui Quang Minh <hidden>
Date: 2025-12-24 16:43:30
Also in:
bpf, lkml, virtualization
On 12/24/25 07:52, Jason Wang wrote:
On Tue, Dec 23, 2025 at 11:27 PM Bui Quang Minh [off-list ref] wrote:quoted
Currently, the refill work is a global delayed work for all the receive queues. This commit makes the refill work a per receive queue so that we can manage them separately and avoid further mistakes. It also helps the successfully refilled queue avoid the napi_disable in the global delayed refill work like before. Signed-off-by: Bui Quang Minh <redacted> ---I may miss something but I think this patch is sufficient to fix the problem? Thanks
Yes, this fixes the reproducer in virtnet_rx_resume[_all] but the second patch also fixes a bug variant in virtnet_open. After the first patch, the enable_delayed_refill is still called before napi_enable. However, the only possible delayed refill schedule is in virtnet_set_queues and it can't happen between that window because during virtnet_rx_resume[_all], we still holds the rtnl_lock. So leaving the enable_delayed_refill before napi_enable does not cause an issue but it feels not correct to me. But moving enable_delayed_refill after napi_enable requires the new pending bool in the third patch. Thanks, Quang Minh.