Messages in this thread | | | Date | Fri, 03 Nov 2006 07:39:44 -0500 | From | Larry Woodman <> | Subject | Re: __alloc_pages() failures reported due to fragmentation |
| |
Arjan van de Ven wrote:
>>--- linux-2.6.18.noarch/net/core/sock.c.orig >>+++ linux-2.6.18.noarch/net/core/sock.c >>@@ -1154,7 +1154,7 @@ static struct sk_buff *sock_alloc_send_p >> goto failure; >> >> if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) { >>- skb = alloc_skb(header_len, sk->sk_allocation); >>+ skb = alloc_skb(header_len, gfp_mask); >> if (skb) { >> int npages; >> int i; >> >> > >Hi, > >this is not actually right though... sk_allocation is very possible to >have a restricting mask compared to the one passed in (say "no highmem" >or even GFP_DMA) and you now discard this... probably better would be to >calculate a set of "transient" flags that you then or into the >sk_allocation mask at this time... > >Greetings, > Arjan van de Ven > > > Hi Arjan. Right but this just includes __GFP_REPEAT in the mask so we can defrag in __alloc_pages and only if GFP_WAIT was passed in origionally.
Larry
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |