[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpXraspjEvh9Wy5jOscFz7zKS4Z3XsigxCJFJ5_RuCOnyw@mail.gmail.com>
Date: Fri, 19 May 2017 10:46:51 -0700
From: Cong Wang <xiyou.wangcong@...il.com>
To: Akshay Narayan <akshayn@....edu>
Cc: Linux Kernel Network Developers <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>
Subject: Re: [PATCH net] fix BUG: scheduling while atomic in netlink broadcast
On Fri, May 19, 2017 at 10:22 AM, Akshay Narayan <akshayn@....edu> wrote:
> netlink_broadcast_filtered() calls yield() when a slow listener causes
> the buffer to fill. yield() is the wrong choice here, as pointed out by
> Commit 8e3fabfde4 (sched: Update yield() docs); in some cases, its use causes
> "BUG: scheduling while atomic" and, when fewer cores are available,
> kernel hangs:
I don't want to defend the use of yield() but it looks like there is other
problem.
>
> (note: "ccp" is a kernel module which multicasts netlink messages upon
> certain TCP events)
Does this module call netlink_broadcast() with __GFP_DIRECT_RECLAIM
in IRQ context? If so you should adjust the gfp flags.
Powered by blists - more mailing lists