[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1288045856.3296.19.camel@edumazet-laptop>
Date: Tue, 26 Oct 2010 00:30:56 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: "nhorman@...driver.com" <nhorman@...driver.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net, jpirko@...hat.com
Subject: Re: [PATCH] Enhance AF_PACKET implementation to not require high
order contiguous memory allocation
Le lundi 25 octobre 2010 à 18:14 -0400, nhorman@...driver.com a écrit :
> I think I remember those changes and IIrc yes, tcpdump will make
> several attempts to get buffers of an appropriate size. But while it
> tries to do that it bogs the system trying to write out pagecahe,
> swap, etc. And that activity doesn't guarantee success. His does
> either, but getting 5 order 0 pages is far easier and less intrusive
> to a loaded system than trying to get 1 order 4 chunk. That's all I'm
> trying to accomplish here. Just making it easier to use af_packet
> sockets without interfering with system performance
>
Actually, using vmalloc() would probably hurt performance, because of
extra TLB pressure.
Of course, on recent x86 hardware you dont notice that much...
If not, why af_packet would use such convoluted double array of
'compound pages' ?
Also, on x86_32, vmalloc()/vmap() space is small (128 MB) so you might
exhaust it pretty fast with several sniffers running.
I would try a two level thing : Try to get high order pages, and
fallback on low order pages, but normally libpcap does this for us ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists