1 GB lowmem
From: Rune Torgersen <hidden>
Date: 2008-05-21 17:59:39
9 messages, 3 authors, 2008-05-22 · open the first message on its own page
From: Rune Torgersen <hidden>
Date: 2008-05-21 17:59:39
Hi I am trying to enable 1 GB of lowmem on a Freescale 8280. In arch/ppc this was easilly done by: CONFIG_ADVANCED_OPTIONS=3Dy CONFIG_HIGHMEM_START=3D0xfe000000 CONFIG_LOWMEM_SIZE_BOOL=3Dy CONFIG_LOWMEM_SIZE=3D0x40000000 CONFIG_KERNEL_START_BOOL=3Dy CONFIG_KERNEL_START=3D0xa0000000 This does not work in arch/powerpc. CPU hangs as soon as init starts. Any ideas what to look at, what to change? The reason I want to do this is because I cannot get highmem support to work when using CONFIG_PREEMPT_RT. (hitting a bug_on in kmap_atomic)
From: Rune Torgersen <hidden>
Date: 2008-05-21 20:00:00
linuxppc-dev-bounces+runet=3Dinnovsys.com@ozlabs.org wrote:
Hi =20 I am trying to enable 1 GB of lowmem on a Freescale 8280. In arch/ppc this was easilly done by: CONFIG_ADVANCED_OPTIONS=3Dy CONFIG_HIGHMEM_START=3D0xfe000000 CONFIG_LOWMEM_SIZE_BOOL=3Dy CONFIG_LOWMEM_SIZE=3D0x40000000 CONFIG_KERNEL_START_BOOL=3Dy CONFIG_KERNEL_START=3D0xa0000000 =20 This does not work in arch/powerpc. CPU hangs as soon as init starts. Any ideas what to look at, what to change? =20 The reason I want to do this is because I cannot get highmem support to work when using CONFIG_PREEMPT_RT. (hitting a bug_on in kmap_atomic)
Scratch that. 1 GB lowmem works with vanilla 2.6.25.4, but not at all with 2.6.25.4-rt[13]
From: Rune Torgersen <hidden>
Date: 2008-05-21 21:01:24
Rune Torgersen wrote:
linuxppc-dev-bounces+runet=3Dinnovsys.com@ozlabs.org wrote:quoted
Hi =20 I am trying to enable 1 GB of lowmem on a Freescale 8280. In arch/ppc this was easilly done by: CONFIG_ADVANCED_OPTIONS=3Dy CONFIG_HIGHMEM_START=3D0xfe000000 CONFIG_LOWMEM_SIZE_BOOL=3Dy CONFIG_LOWMEM_SIZE=3D0x40000000 CONFIG_KERNEL_START_BOOL=3Dy CONFIG_KERNEL_START=3D0xa0000000 =20 This does not work in arch/powerpc. CPU hangs as soon as init starts. Any ideas what to look at, what to change? =20 The reason I want to do this is because I cannot get highmem support to work when using CONFIG_PREEMPT_RT. (hitting a bug_on in kmap_atomic)=20 Scratch that. 1 GB lowmem works with vanilla 2.6.25.4, but not at all with 2.6.25.4-rt[13]
Argh... Found it. Had to set CONFIG_TASK_SIZE to 0x80000000. Now it works in both vaniulla an d RT kernel. Highmem still doesn't work.
From: Kumar Gala <hidden>
Date: 2008-05-21 21:13:03
On May 21, 2008, at 3:55 PM, Rune Torgersen wrote:
Rune Torgersen wrote:quoted
linuxppc-dev-bounces+runet=innovsys.com@ozlabs.org wrote:quoted
Hi I am trying to enable 1 GB of lowmem on a Freescale 8280. In arch/ppc this was easilly done by: CONFIG_ADVANCED_OPTIONS=y CONFIG_HIGHMEM_START=0xfe000000 CONFIG_LOWMEM_SIZE_BOOL=y CONFIG_LOWMEM_SIZE=0x40000000 CONFIG_KERNEL_START_BOOL=y CONFIG_KERNEL_START=0xa0000000 This does not work in arch/powerpc. CPU hangs as soon as init starts. Any ideas what to look at, what to change? The reason I want to do this is because I cannot get highmem support to work when using CONFIG_PREEMPT_RT. (hitting a bug_on in kmap_atomic)Scratch that. 1 GB lowmem works with vanilla 2.6.25.4, but not at all with 2.6.25.4-rt[13]Argh... Found it. Had to set CONFIG_TASK_SIZE to 0x80000000. Now it works in both vaniulla an d RT kernel.
We should really add some sanity check on CONFIG_TASK_SIZE vs KERNEL_START. - k
From: Rune Torgersen <hidden>
Date: 2008-05-21 21:23:51
Kumar Gala wrote:
On May 21, 2008, at 3:55 PM, Rune Torgersen wrote:quoted
Argh... Found it. Had to set CONFIG_TASK_SIZE to 0x80000000. Now it works in both vaniulla an d RT kernel.=20 We should really add some sanity check on CONFIG_TASK_SIZE vs KERNEL_START.=20
Something like this? Wording sould probablyy be a bit different/cleare.
diff --git a/include/asm-powerpc/processor.hb/include/asm-powerpc/processor.h index fd98ca9..72e0e3f 100644
--- a/include/asm-powerpc/processor.h
+++ b/include/asm-powerpc/processor.h@@ -81,6 +81,10 @@ extern struct task_struct *last_task_used_altivec; extern struct task_struct *last_task_used_spe; #ifdef CONFIG_PPC32 + +#if CONFIG_TASK_SIZE > CONFIG_KERNEL_START +#error User TASK_SIZE overlaps with KERNEL_START address +#endif #define TASK_SIZE (CONFIG_TASK_SIZE) /* This decides where the kernel will search for a free chunk of vm
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-05-21 21:25:03
On Wed, 2008-05-21 at 13:00 -0500, Rune Torgersen wrote:
Hi I am trying to enable 1 GB of lowmem on a Freescale 8280. In arch/ppc this was easilly done by: CONFIG_ADVANCED_OPTIONS=y CONFIG_HIGHMEM_START=0xfe000000 CONFIG_LOWMEM_SIZE_BOOL=y CONFIG_LOWMEM_SIZE=0x40000000 CONFIG_KERNEL_START_BOOL=y CONFIG_KERNEL_START=0xa0000000 This does not work in arch/powerpc. CPU hangs as soon as init starts. Any ideas what to look at, what to change?
You probably need to lower TASK_SIZE too.
The reason I want to do this is because I cannot get highmem support to work when using CONFIG_PREEMPT_RT. (hitting a bug_on in kmap_atomic)
We should look into fixing that :-) Ben.
From: Kumar Gala <hidden>
Date: 2008-05-22 04:14:23
On May 21, 2008, at 4:24 PM, Rune Torgersen wrote:
Kumar Gala wrote:quoted
On May 21, 2008, at 3:55 PM, Rune Torgersen wrote:quoted
Argh... Found it. Had to set CONFIG_TASK_SIZE to 0x80000000. Now it works in both vaniulla an d RT kernel.We should really add some sanity check on CONFIG_TASK_SIZE vs KERNEL_START.Something like this? Wording sould probablyy be a bit different/cleare.diff --git a/include/asm-powerpc/processor.hb/include/asm-powerpc/processor.h index fd98ca9..72e0e3f 100644--- a/include/asm-powerpc/processor.h +++ b/include/asm-powerpc/processor.h@@ -81,6 +81,10 @@ extern struct task_struct *last_task_used_altivec;extern struct task_struct *last_task_used_spe; #ifdef CONFIG_PPC32 + +#if CONFIG_TASK_SIZE > CONFIG_KERNEL_START +#error User TASK_SIZE overlaps with KERNEL_START address +#endif #define TASK_SIZE (CONFIG_TASK_SIZE) /* This decides where the kernel will search for a free chunk of vm
something like that would be good. is there really anything PPC32 specific about it? - k
From: Rune Torgersen <hidden>
Date: 2008-05-22 14:13:32
Kumar Gala wrote:
On May 21, 2008, at 4:24 PM, Rune Torgersen wrote: =20quoted
Kumar Gala wrote:quoted
On May 21, 2008, at 3:55 PM, Rune Torgersen wrote:quoted
Argh... Found it. Had to set CONFIG_TASK_SIZE to 0x80000000. Now it works in both vaniulla an d RT kernel.=20 We should really add some sanity check on CONFIG_TASK_SIZE vs KERNEL_START.=20 Something like this? Wording sould probablyy be a bit different/cleare. =20diff --git a/include/asm-powerpc/processor.hb/include/asm-powerpc/processor.h index fd98ca9..72e0e3f 100644--- a/include/asm-powerpc/processor.h +++ b/include/asm-powerpc/processor.h@@ -81,6 +81,10 @@ extern struct task_struct *last_task_used_altivec;extern struct task_struct *last_task_used_spe; =20 #ifdef CONFIG_PPC32 + +#if CONFIG_TASK_SIZE > CONFIG_KERNEL_START +#error User TASK_SIZE overlaps with KERNEL_START address +#endif #define TASK_SIZE (CONFIG_TASK_SIZE) =20 /* This decides where the kernel will search for a free chunk of vm =20=20 something like that would be good. is there really anything PPC32 specific about it?=20 =20
Probably not. Could this be done in the Kconfig file instead?. Don't know if Kconfig supports doing a comparison.
From: Rune Torgersen <hidden>
Date: 2008-05-22 15:16:30
Kumar Gala wrote:
something like that would be good. is there really anything PPC32 specific about it?=20
Apparently. The Kconfig option is only available for arch/powerpc and arch/ppc, and the only place in the whole codetree where CONFIG_TASK_SIZE is used is that particular spot in asm-powerpc/processor.h, and that again is within CONFIG_PPC32 define, so it seems only PPC32 is using TASK_SIZE.