On Mon, 2015-02-23 at 13:58 +0100, Vlastimil Babka wrote: > Recently, there was concern expressed (e.g. [1]) whether the quite aggressive > THP allocation attempts on page faults are a good performance trade-off. > > - THP allocations add to page fault latency, as high-order allocations are > notoriously expensive. Page allocation slowpath now does extra checks for > GFP_TRANSHUGE && !PF_KTHREAD to avoid the more expensive synchronous > compaction for user page faults. But even async compaction can be expensive. > - During the first page fault in a 2MB range we cannot predict how much of the > range will be actually accessed - we can theoretically waste as much as 511 > worth of pages [2]. Or, the pages in the range might be accessed from CPUs > from different NUMA nodes and while base pages could be all local, THP could > be remote to all but one CPU. The cost of remote accesses due to this false > sharing would be higher than any savings on the TLB. > - The interaction with memcg are also problematic [1]. > > Now I don't have any hard data to show how big these problems are, and I > expect we will discuss this on LSF/MM (and hope somebody has such data [3]). > But it's certain that e.g. SAP recommends to disable THPs [4] for their apps > for performance reasons. There are plenty of examples of this, ie for Oracle: https://blogs.oracle.com/linux/entry/performance_issues_with_transparent_huge http://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64.php Thanks, Davidlohr -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>