diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/Kconfig.debug | 12 | ||||
-rw-r--r-- | arch/x86/mm/init_64.c | 20 |
2 files changed, 32 insertions, 0 deletions
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 7ce8e7025661..f4413c04e687 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
@@ -76,6 +76,18 @@ config DEBUG_RODATA | |||
76 | data. This is recommended so that we can catch kernel bugs sooner. | 76 | data. This is recommended so that we can catch kernel bugs sooner. |
77 | If in doubt, say "Y". | 77 | If in doubt, say "Y". |
78 | 78 | ||
79 | config DIRECT_GBPAGES | ||
80 | bool "Enable gbpages-mapped kernel pagetables" | ||
81 | depends on DEBUG_KERNEL && EXPERIMENTAL && X86_64 | ||
82 | help | ||
83 | Enable gigabyte pages support (if the CPU supports it). This can | ||
84 | improve the kernel's performance a tiny bit by reducing TLB | ||
85 | pressure. | ||
86 | |||
87 | This is experimental code. | ||
88 | |||
89 | If in doubt, say "N". | ||
90 | |||
79 | config DEBUG_RODATA_TEST | 91 | config DEBUG_RODATA_TEST |
80 | bool "Testcase for the DEBUG_RODATA feature" | 92 | bool "Testcase for the DEBUG_RODATA feature" |
81 | depends on DEBUG_RODATA | 93 | depends on DEBUG_RODATA |
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index a02a14f0f324..6e7d5a42a09a 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -54,6 +54,26 @@ static unsigned long dma_reserve __initdata; | |||
54 | 54 | ||
55 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 55 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
56 | 56 | ||
57 | int direct_gbpages __meminitdata | ||
58 | #ifdef CONFIG_DIRECT_GBPAGES | ||
59 | = 1 | ||
60 | #endif | ||
61 | ; | ||
62 | |||
63 | static int __init parse_direct_gbpages_off(char *arg) | ||
64 | { | ||
65 | direct_gbpages = 0; | ||
66 | return 0; | ||
67 | } | ||
68 | early_param("nogbpages", parse_direct_gbpages_off); | ||
69 | |||
70 | static int __init parse_direct_gbpages_on(char *arg) | ||
71 | { | ||
72 | direct_gbpages = 1; | ||
73 | return 0; | ||
74 | } | ||
75 | early_param("gbpages", parse_direct_gbpages_on); | ||
76 | |||
57 | /* | 77 | /* |
58 | * NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the | 78 | * NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the |
59 | * physical space so we can cache the place of the first one and move | 79 | * physical space so we can cache the place of the first one and move |