|
@@ -83,7 +83,7 @@ unsigned long transparent_hugepage_flags __read_mostly =
|
|
|
(1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG);
|
|
|
|
|
|
/* default scan 8*512 pte (or vmas) every 30 second */
|
|
|
-static unsigned int khugepaged_pages_to_scan __read_mostly = HPAGE_PMD_NR*8;
|
|
|
+static unsigned int khugepaged_pages_to_scan __read_mostly;
|
|
|
static unsigned int khugepaged_pages_collapsed;
|
|
|
static unsigned int khugepaged_full_scans;
|
|
|
static unsigned int khugepaged_scan_sleep_millisecs __read_mostly = 10000;
|
|
@@ -98,7 +98,7 @@ static DECLARE_WAIT_QUEUE_HEAD(khugepaged_wait);
|
|
|
* it would have happened if the vma was large enough during page
|
|
|
* fault.
|
|
|
*/
|
|
|
-static unsigned int khugepaged_max_ptes_none __read_mostly = HPAGE_PMD_NR-1;
|
|
|
+static unsigned int khugepaged_max_ptes_none __read_mostly;
|
|
|
|
|
|
static int khugepaged(void *none);
|
|
|
static int khugepaged_slab_init(void);
|
|
@@ -660,6 +660,18 @@ static int __init hugepage_init(void)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
+ khugepaged_pages_to_scan = HPAGE_PMD_NR * 8;
|
|
|
+ khugepaged_max_ptes_none = HPAGE_PMD_NR - 1;
|
|
|
+ /*
|
|
|
+ * hugepages can't be allocated by the buddy allocator
|
|
|
+ */
|
|
|
+ MAYBE_BUILD_BUG_ON(HPAGE_PMD_ORDER >= MAX_ORDER);
|
|
|
+ /*
|
|
|
+ * we use page->mapping and page->index in second tail page
|
|
|
+ * as list_head: assuming THP order >= 2
|
|
|
+ */
|
|
|
+ MAYBE_BUILD_BUG_ON(HPAGE_PMD_ORDER < 2);
|
|
|
+
|
|
|
err = hugepage_init_sysfs(&hugepage_kobj);
|
|
|
if (err)
|
|
|
goto err_sysfs;
|
|
@@ -764,7 +776,6 @@ void prep_transhuge_page(struct page *page)
|
|
|
* we use page->mapping and page->indexlru in second tail page
|
|
|
* as list_head: assuming THP order >= 2
|
|
|
*/
|
|
|
- BUILD_BUG_ON(HPAGE_PMD_ORDER < 2);
|
|
|
|
|
|
INIT_LIST_HEAD(page_deferred_list(page));
|
|
|
set_compound_page_dtor(page, TRANSHUGE_PAGE_DTOR);
|