Re: [PATCH v3 net-next] net: link_watch: prevent starvation when processing linkwatch wq
From: David Miller
Date: Mon Jul 01 2019 - 22:03:13 EST
From: Yunsheng Lin <linyunsheng@xxxxxxxxxx>
Date: Fri, 28 Jun 2019 09:13:19 +0800
> When user has configured a large number of virtual netdev, such
> as 4K vlans, the carrier on/off operation of the real netdev
> will also cause it's virtual netdev's link state to be processed
> in linkwatch. Currently, the processing is done in a work queue,
> which may cause rtnl locking starvation problem and worker
> starvation problem for other work queue, such as irqfd_inject wq.
>
> This patch releases the cpu when link watch worker has processed
> a fixed number of netdev' link watch event, and schedule the
> work queue again when there is still link watch event remaining.
>
> Signed-off-by: Yunsheng Lin <linyunsheng@xxxxxxxxxx>
> ---
> V2: use cond_resched and rtnl_unlock after processing a fixed
> number of events
> V3: fall back to v1 and change commit log to reflect that.
Applied, thanks.