Re: [PATCH net-next 1/3] net: allow > 0 order atomic page alloc in skb_page_frag_refill

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 3, 2014 at 5:54 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
>
> This is in GFP_ATOMIC cases, I dont think it can ever start compaction.

I think that's right I probably finally got it back to normal behavior
with order-0 allocations.

>
> It seems that you shoot the messenger : If memory is fragmented, then
> one order-1 allocation is going to start compaction.
>
> It can be a simple fork().
>
> If your workload never fork(), then yes, you never needed compaction.
>

Sure but the rate of network packets in and out and subsequent
allocations would be more equivalent to a fork bomb than normal
forking. I understand mm should work more sanely in this scenario but
at the same time we see a bad regression with this code, I see we're
not alone.

>
> We are not trying to optimize the kernel behavior for hosts in deep
> memory pressure.

We're leaving about half for the kernel so I wouldn't call it "deep".
Any server application that is using page cache and mlocked memory
will run into similar issues.

> It doesn't really matter to say that which memory allocation triggered
> compaction, which is a normal step in mm layer.
>
> If you believe its badly done, you should ask to mm guys to fix/improve
> it, not netdev...
>
> Using order-3 pages in TCP stack improves performance for 99% of the
> hosts, there might be something wrong on your side ?
>

Having lots of memory mlocked is bad right now yes, but not
necessarily an uncommon scenario. We're handing mm an almost
intractable problem. I see compaction of mlocked pages has been
discussed a few times over there, but no patch has actually made it
in.

-Debabrata
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux