Port-powerpc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: 16KB page ibm4xx performance
On Mon, Aug 16, 2010 at 05:23:56PM +0900, Masao Uebayashi wrote:
> I'm testing XIP on OpenBlockS266 (405GPr). It works, but it seems very
> slow. If I disable neighbor fault for MADV_NORMAL, /bin/ksh as XIP
> starts up in doubled speed, and time -l shows 1/2 page reclaims.
>
> I guess this platform needs serious TLB / cache tuning...
There are a mixture of problems:
- Our PowerPC ELF has RWX .data/.got/.plt. If programs' .data sections
are not aligned to 16KB, those are mapped as "overlay"; pages are always
copied.
- Mapping executable pages by pmap_enter() is very expensive because of the
__syncicache() operation.
- Neighbor fault tends to cause TLB shortage. This is bad especially if exec
mappings became victimes.
I can get useful speed on 405GPr now by doing the followings:
- Use static binaries.
- Disable neighbor faults.
*
I'd recommend all 405GPr users to use only static userland, so you
get 2x speed...
Masao
--
Masao Uebayashi / Tombi Inc. / Tel: +81-90-9141-4635
Index: sys/uvm/uvm_fault.c
===================================================================
RCS file: /cvsroot/src/sys/uvm/uvm_fault.c,v
retrieving revision 1.166.2.21
diff -u -r1.166.2.21 uvm_fault.c
--- sys/uvm/uvm_fault.c 17 Aug 2010 06:48:14 -0000 1.166.2.21
+++ sys/uvm/uvm_fault.c 18 Aug 2010 14:52:52 -0000
@@ -167,7 +167,11 @@
*/
static const struct uvm_advice uvmadvice[] = {
+#if PAGE_SIZE < 16384
{ MADV_NORMAL, 3, 4 },
+#else
+ { MADV_NORMAL, 0, 0 },
+#endif
{ MADV_RANDOM, 0, 0 },
{ MADV_SEQUENTIAL, 8, 7},
};
Home |
Main Index |
Thread Index |
Old Index