[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<AM0PR0402MB3891AD9FB1D365D243AFFCF388E62@AM0PR0402MB3891.eurprd04.prod.outlook.com>
Date: Thu, 9 May 2024 11:10:46 +0000
From: Wei Fang <wei.fang@....com>
To: Jakub Kicinski <kuba@...nel.org>, "davem@...emloft.net"
<davem@...emloft.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "edumazet@...gle.com"
<edumazet@...gle.com>, "pabeni@...hat.com" <pabeni@...hat.com>, Erhard
Furtner <erhard_f@...lbox.org>, "robh@...nel.org" <robh@...nel.org>,
"elder@...nel.org" <elder@...nel.org>, "bhupesh.sharma@...aro.org"
<bhupesh.sharma@...aro.org>, "benh@...nel.crashing.org"
<benh@...nel.crashing.org>
Subject: RE: [PATCH net] eth: sungem: remove .ndo_poll_controller to avoid
deadlocks
> -----Original Message-----
> From: Jakub Kicinski <kuba@...nel.org>
> Sent: 2024年5月8日 21:45
> To: davem@...emloft.net
> Cc: netdev@...r.kernel.org; edumazet@...gle.com; pabeni@...hat.com;
> Jakub Kicinski <kuba@...nel.org>; Erhard Furtner <erhard_f@...lbox.org>;
> robh@...nel.org; elder@...nel.org; Wei Fang <wei.fang@....com>;
> bhupesh.sharma@...aro.org; benh@...nel.crashing.org
> Subject: [PATCH net] eth: sungem: remove .ndo_poll_controller to avoid
> deadlocks
>
> Erhard reports netpoll warnings from sungem:
>
> netpoll_send_skb_on_dev(): eth0 enabled interrupts in poll
> (gem_start_xmit+0x0/0x398)
> WARNING: CPU: 1 PID: 1 at net/core/netpoll.c:370
> netpoll_send_skb+0x1fc/0x20c
>
> gem_poll_controller() disables interrupts, which may sleep.
> We can't sleep in netpoll, it has interrupts disabled completely.
> Strangely, gem_poll_controller() doesn't even poll the completions, and
> instead acts as if an interrupt has fired so it just schedules NAPI and exits.
> None of this has been necessary for years, since netpoll invokes NAPI directly.
>
Thanks for reminder.
The fec driver should have the same issue, but I don't know much about netpoll,
is ndo_poll_controller() no needed anymore? so it can be safely deleted from
device driver?
Powered by blists - more mailing lists