Thread (2 messages) 2 messages, 2 authors, 2020-12-23

Re: [PATCH] virtio_net: Fix recursive call to cpus_read_lock()

From: Jakub Kicinski <kuba@kernel.org>
Date: 2020-12-23 02:33:27

On Tue, 22 Dec 2020 11:49:04 +0800 Jason Wang wrote:
On 2020/12/22 上午11:36, Jeff Dike wrote:
quoted
virtnet_set_channels can recursively call cpus_read_lock if CONFIG_XPS
and CONFIG_HOTPLUG are enabled.

The path is:
     virtnet_set_channels - calls get_online_cpus(), which is a trivial
wrapper around cpus_read_lock()
     netif_set_real_num_tx_queues
     netif_reset_xps_queues_gt
     netif_reset_xps_queues - calls cpus_read_lock()

This call chain and potential deadlock happens when the number of TX
queues is reduced.

This commit the removes netif_set_real_num_[tr]x_queues calls from
inside the get/put_online_cpus section, as they don't require that it
be held.

Signed-off-by: Jeff Dike <redacted>
Adding netdev.

The patch can go with -net and is needed for -stable.

Acked-by: Jason Wang <jasowang@redhat.com>
Thanks, we'll need a repost with netdev CCed to apply it to net, 
I don't have this one in my inbox or in patchwork.

Jeff please make sure to keep the acks when reposting.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help