Messages in this thread | | | Date | Fri, 10 Jan 2014 16:01:55 -0600 | From | Alex Thorlton <> | Subject | Re: [RFC PATCH] mm: thp: Add per-mm_struct flag to control THP |
| |
On Fri, Jan 10, 2014 at 10:23:10PM +0200, Kirill A. Shutemov wrote: > Do you know what cause the difference? I prefer to fix THP instead of > adding new knob to disable it.
The issue is that when you touch 1 byte of an untouched, contiguous 2MB chunk, a THP will be handed out, and the THP will be stuck on whatever node the chunk was originally referenced from. If many remote nodes need to do work on that same chunk, they'll be making remote accesses. With THP disabled, 4K pages can be handed out to separate nodes as they're needed, greatly reducing the amount of remote accesses to memory. I give a bit better description here:
https://lkml.org/lkml/2013/8/27/397
I had been looking into better ways to handle this issues, but after spinning through a few other ideas:
- Per cpuset flag to control THP: https://lkml.org/lkml/2013/6/10/331
- Threshold to determine when to hand out THPs: https://lkml.org/lkml/2013/12/12/394
We've arrived back here. Andrea seemed to think that this is an acceptable approach to solve the problem, at least as a starting point:
https://lkml.org/lkml/2013/12/17/397
I agree that we should, ideally, come up with a way to appropriately handle this problem in the kernel, but as of right now, it appears that that might be a rather large undertaking.
- Alex
| |