Message ID | 1360693905-23503-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Wed, 2013-02-13 at 00:01 +0530, Aneesh Kumar K.V wrote: > + * Be careful with this value. This determines the VSID_MODULUS_* and that > + * need to be co-prime with VSID_MULTIPLIER* > + */ > +#if defined(CONFIG_POWER6_CPU) || defined(CONFIG_POWER7_CPU) > +/* > + * Even if cpu support 68 bits, we limit this to 66 because > + * we support only 2^19 context. > + */ > +#define MAX_VIRTUAL_ADDR_BITS 66 > +#else > +/* power4,power 5 and cell is 65 */ > +#define MAX_VIRTUAL_ADDR_BITS 65 > +#endif > + A compile option ? Really ? Ugh... Ben.
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes: > On Wed, 2013-02-13 at 00:01 +0530, Aneesh Kumar K.V wrote: >> + * Be careful with this value. This determines the VSID_MODULUS_* and that >> + * need to be co-prime with VSID_MULTIPLIER* >> + */ >> +#if defined(CONFIG_POWER6_CPU) || defined(CONFIG_POWER7_CPU) >> +/* >> + * Even if cpu support 68 bits, we limit this to 66 because >> + * we support only 2^19 context. >> + */ >> +#define MAX_VIRTUAL_ADDR_BITS 66 >> +#else >> +/* power4,power 5 and cell is 65 */ >> +#define MAX_VIRTUAL_ADDR_BITS 65 >> +#endif >> + > > A compile option ? Really ? Ugh... I actually wanted that to be done in Kconfig.cputype, but haven't found a nice way to do it. Considering we are switching between only two values, I was thinking an #ifdef would work. -aneesh
On Wed, 2013-02-13 at 08:54 +0530, Aneesh Kumar K.V wrote: > > A compile option ? Really ? Ugh... > > I actually wanted that to be done in Kconfig.cputype, but haven't found > a nice way to do it. Considering we are switching between only two > values, I was thinking an #ifdef would work. No, we want to support all those processor types from a single kernel image. Ben.
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h index 5f8c2bd..839efae 100644 --- a/arch/powerpc/include/asm/mmu-hash64.h +++ b/arch/powerpc/include/asm/mmu-hash64.h @@ -381,7 +381,27 @@ extern void slb_set_size(u16 size); * hash collisions. */ -#define CONTEXT_BITS 19 +/* + * Be careful with this value. This determines the VSID_MODULUS_* and that + * need to be co-prime with VSID_MULTIPLIER* + */ +#if defined(CONFIG_POWER6_CPU) || defined(CONFIG_POWER7_CPU) +/* + * Even if cpu support 68 bits, we limit this to 66 because + * we support only 2^19 context. + */ +#define MAX_VIRTUAL_ADDR_BITS 66 +#else +/* power4,power 5 and cell is 65 */ +#define MAX_VIRTUAL_ADDR_BITS 65 +#endif + +/* + * One bit is taken by the kernel, only the rest of space is available for the + * user space. + */ +#define CONTEXT_BITS (MAX_VIRTUAL_ADDR_BITS - \ + (USER_ESID_BITS + SID_SHIFT + 1)) #define USER_ESID_BITS 18 #define USER_ESID_BITS_1T 6