From: Andrea Arcangeli <andrea@suse.de>
To: Andi Kleen <ak@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Ulrich.Weigand@de.ibm.com, linux-kernel@vger.kernel.org,
schwidefsky@de.ibm.com
Subject: Re: Deadlock in 2.2 sock_alloc_send_skb?
Date: Thu, 10 May 2001 23:13:00 +0200 [thread overview]
Message-ID: <20010510231300.W848@athlon.random> (raw)
In-Reply-To: <C1256A48.00451BD1.00@d12mta11.de.ibm.com> <E14xq0v-0004j0-00@the-village.bc.nu> <20010510193047.A22970@gruyere.muc.suse.de>
In-Reply-To: <20010510193047.A22970@gruyere.muc.suse.de>; from ak@suse.de on Thu, May 10, 2001 at 07:30:47PM +0200
On Thu, May 10, 2001 at 07:30:47PM +0200, Andi Kleen wrote:
> On Thu, May 10, 2001 at 01:57:49PM +0100, Alan Cox wrote:
> > > If that happens, and the socket uses GFP_ATOMIC allocation, the while (1)
> > > loop in sock_alloc_send_skb() will endlessly spin, without ever calling
> > > schedule(), and all the time holding the kernel lock ...
> >
> > If the socket is using GFP_ATOMIC allocation it should never loop. That is
> > -not-allowed-.
>
> It is just not clear why any socket should use GFP_ATOMIC. I can understand
> it using GFP_BUFFER e.g. for nbd, but GFP_ATOMIC seems to be rather radical
> and fragile.
side note, the only legal use of GFP_ATOMIC in sock_alloc_send_skb is
with noblock set and fallback zero, remeber GFP_BUFFER will sleep, it
may not sleep in vanilla 2.2.19 but the necessary lowlatency hooks in
the memory balancing that for example I have on my 2.2 tree will make it
to sleep.
The patch self contained looks perfect (I didn't checked that the
callers are happy with a -ENOMEM errorcode though), if alloc_skb()
failed that's a plain -ENOMEM. The caller must _not_ try again, they
must take a recovery fail path instead.
Andrea
next prev parent reply other threads:[~2001-05-10 21:15 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-10 12:34 Deadlock in 2.2 sock_alloc_send_skb? Ulrich.Weigand
2001-05-10 12:57 ` Alan Cox
2001-05-10 17:30 ` Andi Kleen
2001-05-10 21:13 ` Andrea Arcangeli [this message]
2001-05-10 21:17 ` Andi Kleen
2001-05-10 21:32 ` Andrea Arcangeli
2001-05-11 8:36 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010510231300.W848@athlon.random \
--to=andrea@suse.de \
--cc=Ulrich.Weigand@de.ibm.com \
--cc=ak@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=schwidefsky@de.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.