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

From: Andrew Morton
Date: Tue Jul 11 2006 - 06:04:24 EST


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.

Probably it'll work out OK if the semaphore is taken after that task has
had some resources torn down.
-
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/