Re: [Patch 6/6] per task delay accounting taskstats interface: fix clone skbs for each listener

From: Herbert Xu
Date: Tue Jul 11 2006 - 06:27:47 EST


Andrew Morton <akpm@xxxxxxxx> wrote:
> On Tue, 11 Jul 2006 00:36:39 -0400
> Shailabh Nagar <nagar@xxxxxxxxxxxxxx> wrote:
>
>> down_write(&listeners->sem);
>> list_for_each_entry_safe(s, tmp, &listeners->list, list) {
>> - ret = genlmsg_unicast(skb, s->pid);
>> + skb_next = NULL;
>> + if (!list_islast(&s->list, &listeners->list)) {
>> + skb_next = skb_clone(skb_cur, GFP_KERNEL);
>
> If we do a GFP_KERNEL allocation with this semaphore held, and the
> oom-killer tries to kill something to satisfy the allocation, and the
> killed task gets stuck on that semaphore, I wonder of the box locks up.

We do GFP_KERNEL inside semaphores/mutexes in lots of places. So if this
can deadlock with the oom-killer we probably should fix that, preferably
by having GFP_KERNEL fail in that case.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/