[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190528.235806.323127882998745493.davem@davemloft.net>
Date: Tue, 28 May 2019 23:58:06 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: linyunsheng@...wei.com
Cc: hkallweit1@...il.com, f.fainelli@...il.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, linuxarm@...wei.com
Subject: Re: [PATCH net-next] net: link_watch: prevent starvation when
processing linkwatch wq
From: Yunsheng Lin <linyunsheng@...wei.com>
Date: Mon, 27 May 2019 09:47:54 +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 worker starvation problem for other work queue.
>
> 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@...wei.com>
Why not rtnl_unlock(); yield(); rtnl_lock(); every "100" events
processed?
That seems better than adding all of this overhead to reschedule the
workqueue every 100 items.
Powered by blists - more mailing lists