On Thu, May 26, 2011 at 01:13:58PM -0400, Eric B Munson wrote: > +#define YES "yes" > +#define NO "no"
Upstream 2.6.39 was changed to 0/1, that differs from 2.6.38 :(. It's probably better to support only 0/1 and let it fail on 2.6.38. > +#define TRANS_ENABLE "/sys/kernel/mm/transparent_hugepage/enabled" This sounds ok if you want hugeadm to be able to tweak everything (maybe set madvise mode and then use THP only in a few apps with madvise through --trans-madvise). > +#define TRANS_DEFRAG "/sys/kernel/mm/transparent_hugepage/defrag" > +#define KHUGE_DEFRAG > "/sys/kernel/mm/transparent_hugepage/khugepaged/defrag" I'd drop these two, they're too much for debugging, in libhugetlbfs context especially I can't see anybody using THP with defrag off that turns off compaction and reclaim entirely and just polls the buddy allocator. This is more for debugging only, not useful to tweak. > +#define KHUGE_SCAN_PAGES > "/sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan" > +#define KHUGE_SCAN_SLEEP > "/sys/kernel/mm/transparent_hugepage/khugepaged/scan_sleep_millisecs" > +#define KHUGE_ALLOC_SLEEP > "/sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs" This is useful too. These three plus the "/enabled" are the only 4 I'd consider worth tweaking not only for debugging. > @@ -97,6 +109,20 @@ void print_usage() > CONT("Adjust pool 'size' lower bound"); > OPTION("--obey-mempolicy", "Obey the NUMA memory policy when"); > CONT("adjusting the pool 'size' lower bound"); > + OPTION("--trans-always", "Enable transparent huge pages always"); > + OPTION("--trans-madvise", "Enable transparent huge pages with madvise"); > + OPTION("--trans-never", "Disable transparent huge pages"); > + OPTION("--trans-defrag-always", "Don't limit THP defrag"); > + OPTION("--trans-defrag-madvise", "Limit THP defrag to madvise areas > only"); > + OPTION("--trans-defrag-never", "Disable defrag during THP allocation"); > + OPTION("--khugepaged-defrag-off", "Disable defrag during THP > promotion"); > + OPTION("--khugepaged-defrag-on", "Enable defrag during THP promotion"); > + OPTION("--khugepaged-pages <pages to scan>", "Number of pages that > khugepaged"); > + CONT("should scan on each pass"); > + OPTION("--khugepaged-scan-sleep <milliseconds>", "Time in ms to sleep > between"); > + CONT("khugepaged passes"); > + OPTION("--khugepages-alloc-sleep <milliseconds>", "Time in ms for > khugepaged"); > + CONT("to wait if there was a huge page allocation failure"); Wouldn't it be cleaner to use a "thp" prefix instead of "trans". And add the thp prefix to thp-khugepaged too? (but the latter is ok also keeping it khugepaged I guess, I'd still s/trans/thp/) > +.B --khugepaged-pages <pages to scan> > + > +Configure the number of pages that khugepaged should scan on each pass > + > +.TP > +.B --khugepaged-scan-sleep <milliseconds> > + > +Configure how many milliseconds khugepaged should wait between passes > + > +.TP > +.B --khugepages-alloc-sleep <milliseconds> > + > +Configure how many milliseconds khugepaged should wait after failing to > +allocate a huge page to throttle the next attempt. > + > +.PP > The following options affect the verbosity of libhugetlbfs. Good description. Thanks, Andrea ------------------------------------------------------------------------------ vRanger cuts backup time in half-while increasing security. With the market-leading solution for virtual backup and recovery, you get blazing-fast, flexible, and affordable data protection. Download your free trial now. http://p.sf.net/sfu/quest-d2dcopy1 _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel