From: Matt Porter <mporter@kernel.crashing.org> Date: 2004-08-10 14:35:02
On Tue, Aug 10, 2004 at 02:04:44AM -0400, Dan Malek wrote:
On Aug 9, 2004, at 10:21 PM, Josh Boyer wrote:
quoted
I have some boards I could test such a patch on. Or is it a case of
"this isn't trivial to do"?
Ummmmm.....what are we talking about here?
Both MPC8xx, and IBM40x have configuration options for
pinning some (small) amount of kernel space. You can choose
to enable this if you wish, I don't think it is normally enabled.
I've never found a benchmark that proved either was better,
but I left the code there for others to experiment with.
PPC40x no longer has this in 2.6. It has been deprecated by the dynamic
large tlb support. He's looking for an option (like nobats) to cause
kernel lowmem to not be mapped by large page entries.
So, to answer the original question, I would suggest a patch
that that uses a 'noltlb' cmdline option, then skips the PPC40x
large page mapping in 4xx_mmu.c based on that. See the code
that implements 'nobats' for an example.
-Matt
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
On Tue, Aug 10, 2004 at 02:04:44AM -0400, Dan Malek wrote:
quoted
On Aug 9, 2004, at 10:21 PM, Josh Boyer wrote:
quoted
I have some boards I could test such a patch on. Or is it a case of
"this isn't trivial to do"?
Ummmmm.....what are we talking about here?
Both MPC8xx, and IBM40x have configuration options for
pinning some (small) amount of kernel space. You can choose
to enable this if you wish, I don't think it is normally enabled.
I've never found a benchmark that proved either was better,
but I left the code there for others to experiment with.
PPC40x no longer has this in 2.6. It has been deprecated by the dynamic
large tlb support. He's looking for an option (like nobats) to cause
kernel lowmem to not be mapped by large page entries.
So, to answer the original question, I would suggest a patch
that that uses a 'noltlb' cmdline option, then skips the PPC40x
large page mapping in 4xx_mmu.c based on that. See the code
that implements 'nobats' for an example.
Hm... like this? Against 2.6.8-rc4.
thx,
josh
diff -Naur -x '*.swp' linux-2.6.orig/arch/ppc/mm/4xx_mmu.c linux-2.6/arch/ppc/mm/4xx_mmu.c
@@ -104,6 +104,7 @@*--Cort*/int__map_without_bats;+int__map_without_ltlbs;/* max amount of RAM to use */unsignedlong__max_memory;
@@ -204,6 +205,10 @@__map_without_bats=1;}+if(strstr(cmd_line,"noltlb")){+__map_without_ltlbs=1;+}+/* Look for mem= option on command line */if(strstr(cmd_line,"mem=")){char*p,*q;
Yep, tested it on my board. It's not the end goal I am looking for, but
it's a good starting point.
Basically, what I would like to get eventually is large TLBs + protected
kernel text pages. Like you and Matt pointed out, there are issues with
that. If it can't be done, then at least I can use this patch to
protect the kernel text pages easily. Sometimes protection is more
important than performance. Especially when I am hacking on stuff ;).
Thanks for the help.
josh
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
From: Dan Malek <hidden> Date: 2004-08-11 18:21:40
On Aug 11, 2004, at 1:58 PM, Josh Boyer wrote:
Yep, tested it on my board. It's not the end goal I am looking for,
but
it's a good starting point.
Ummm...OK.
Basically, what I would like to get eventually is large TLBs +
protected
kernel text pages. Like you and Matt pointed out, there are issues
with
that. If it can't be done, .....
It can be done, just not easily. Requires boundary/alignment of
text/data
and set up of the large TLBs. Then, there is the issue with wanting the
same feature with loadable modules......
....... Sometimes protection is more
important than performance. Especially when I am hacking on stuff ;).
Well, you have the option now. Have fun!
-- Dan
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/