hi,
I have no way sending to Andi Kleen, then try Mr. linux-kernel and Mr.
Ingo Molnar.
btw, AC's mailbox @ suse closed, and why?
thank you
---------- Forwarded message ----------
From: jing zhang <[email protected]>
Date: Sun, 21 Jun 2009 14:15:09 +0800
Subject: patch for linux-2.6.30/arch/x86_64/mm/init.c
To: [email protected]
Good Sunday Mr. Andi Kleen,
It seems that in function
unsigned long __init_refok
init_memory_mapping(unsigned long start, unsigned long end)
CONFIG_DEBUG_PAGEALLOC conflicts with use_pse and use_gbpages when
CONFIG_X86_32 also defined.
The following is my patch to you,
best
look forwar to your opion.
zj
//<<<<<<<<<<<<<<<<<<<<<
#ifdef CONFIG_DEBUG_PAGEALLOC
/*
* For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
* This will simplify cpa(), which otherwise needs to support splitting
* large pages into small in interrupt context, etc.
*/
use_pse = use_gbpages = 0;
#else
use_pse = cpu_has_pse;
use_gbpages = direct_gbpages;
#endif
#ifdef CONFIG_X86_32
#ifdef CONFIG_X86_PAE
set_nx();
if (nx_enabled)
printk(KERN_INFO "NX (Execute Disable) protection: active\n");
#endif
/* Enable PSE if available */
- if (cpu_has_pse)
+ /* and #ifdef CONFIG_DEBUG_PAGEALLOC */
+ if (cpu_has_pse && use_pse)
set_in_cr4(X86_CR4_PSE);
/* Enable PGE if available */
- if (cpu_has_pge) {
+ /* and #ifdef CONFIG_DEBUG_PAGEALLOC */
+ if (cpu_has_pge && use_gbpages) {
set_in_cr4(X86_CR4_PGE);
__supported_pte_mask |= _PAGE_GLOBAL;
}
#endif /* CONFIG_X86_32 */
//<<<<<<<<<<<<<<<<<<<<<
On Sat, Jun 20, 2009 at 11:26 PM, jing zhang<[email protected]> wrote:
> hi,
>
> I have no way sending to Andi Kleen, then try Mr. linux-kernel and Mr.
> Ingo Molnar.
>
> btw, AC's mailbox @ suse closed, and why?
he is not working for them.
>
> thank you
>
> ---------- Forwarded message ----------
> From: jing zhang <[email protected]>
> Date: Sun, 21 Jun 2009 14:15:09 +0800
> Subject: patch for linux-2.6.30/arch/x86_64/mm/init.c
> To: [email protected]
>
> Good Sunday Mr. Andi Kleen,
>
> It seems that in function
> ? ?unsigned long __init_refok
> ? ?init_memory_mapping(unsigned long start, unsigned long end)
>
> CONFIG_DEBUG_PAGEALLOC conflicts with use_pse and use_gbpages when
> CONFIG_X86_32 also defined.
>
> The following is my patch to you,
>
> best
>
> look forwar to your opion.
> zj
>
> //<<<<<<<<<<<<<<<<<<<<<
>
> #ifdef CONFIG_DEBUG_PAGEALLOC
> ? ? ? ?/*
> ? ? ? ? * For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
> ? ? ? ? * This will simplify cpa(), which otherwise needs to support splitting
> ? ? ? ? * large pages into small in interrupt context, etc.
> ? ? ? ? */
> ? ? ? ?use_pse = use_gbpages = 0;
> #else
> ? ? ? ?use_pse = cpu_has_pse;
> ? ? ? ?use_gbpages = direct_gbpages;
> #endif
>
> #ifdef CONFIG_X86_32
> #ifdef CONFIG_X86_PAE
> ? ? ? ?set_nx();
> ? ? ? ?if (nx_enabled)
> ? ? ? ? ? ? ? ?printk(KERN_INFO "NX (Execute Disable) protection: active\n");
> #endif
> ? ? ? ?/* Enable PSE if available */
> - ? ? ? if (cpu_has_pse)
> + ? ? ? /* and #ifdef CONFIG_DEBUG_PAGEALLOC */
> + ? ? ? if (cpu_has_pse && use_pse)
> ? ? ? ? ? ? ? ?set_in_cr4(X86_CR4_PSE);
>
> ? ? ? ?/* Enable PGE if available */
> - ? ? ? if (cpu_has_pge) {
> + ? ? ? /* and #ifdef CONFIG_DEBUG_PAGEALLOC */
> + ? ? ? if (cpu_has_pge && use_gbpages) {
> ? ? ? ? ? ? ? ?set_in_cr4(X86_CR4_PGE);
> ? ? ? ? ? ? ? ?__supported_pte_mask |= _PAGE_GLOBAL;
pge and gbpages is not same ...
also wonder what is code based for?
please check tip/master
http://people.redhat.com/mingo/tip.git/readme.txt
YH