Thread (7 messages) flat view 7 messages, 3 authors, 2006-07-12

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

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2006-07-11 10:29:33
Also in: lkml

Andrew Morton [off-list ref] wrote:
On Tue, 11 Jul 2006 00:36:39 -0400
Shailabh Nagar [off-list ref] wrote:
quoted
      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~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help