On 01/29/2015 03:59 PM, Ebru Akagunduz wrote: > This patch aims to improve THP collapse rates, by allowing > THP collapse in the presence of read-only ptes, like those > left in place by do_swap_page after a read fault. > > Currently THP can collapse 4kB pages into a THP when > there are up to khugepaged_max_ptes_none pte_none ptes > in a 2MB range. This patch applies the same limit for > read-only ptes. > > The patch was tested with a test program that allocates > 800MB of memory, writes to it, and then sleeps. I force > the system to swap out all but 190MB of the program by > touching other memory. Afterwards, the test program does > a mix of reads and writes to its memory, and the memory > gets swapped back in. > > Without the patch, only the memory that did not get > swapped out remained in THPs, which corresponds to 24% of > the memory of the program. The percentage did not increase > over time. > > With this patch, after 5 minutes of waiting khugepaged had > collapsed 60% of the program's memory back into THPs. > > Signed-off-by: Ebru Akagunduz <ebru.akagunduz@xxxxxxxxx> > Signed-off-by: Ebru Akagunduz <ebru.akagunduz@xxxxxxxxx> > Reviewed-by: Rik van Riel <riel@xxxxxxxxxx> > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > Acked-by: Zhang Yanfei <zhangyanfei@xxxxxxxxxxxxxx> > --- > Changes in v2: > - Remove extra code indent (Vlastimil Babka) > - Add comment line for check condition of page_count() (Vlastimil Babka) > - Add fast path optimistic check to > __collapse_huge_page_isolate() (Andrea Arcangeli) > - Move check condition of page_count() below to trylock_page() (Andrea Arcangeli) > > Changes in v3: > - Add a at-least-one-writable-pte check (Zhang Yanfei) > - Debug page count (Vlastimil Babka, Andrea Arcangeli) > - Increase read-only pte counter if pte is none (Andrea Arcangeli) > > Changes in v4: > - Remove read-only counter (Andrea Arcangeli) > - Remove debug page count (Andrea Arcangeli) > - Change type of writable as bool (Andrea Arcangeli) > - Change type of referenced as bool (Vlastimil Babka) > - Change comment line (Vlastimil Babka, Zhang Yanfei) Looks good, thanks! -- 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>