CONFIG_PIN_TLB experiments
Marcelo Tosatti
marcelo.tosatti at cyclades.com
Tue May 3 06:42:59 EST 2005
Hi 8xx folks,
I've been testing the CONFIG_PIN_TLB option under v2.6, results are not good.
The 8Mbyte TLB entries do not seem to work as expected, they do not
cover the regions which they claim to. Accesses inside the region
covered by pinned 8Mb TLB result in pagefaults and 4kb entries getting
created.
Actually, CONFIG_PIN_TLB slowdowns the system, as expected (there are only
28 usable TLB's instead of 32).
v2.6 CONFIG_PIN_TLB:
I-TLB userspace misses: 162113
I-TLB kernel misses: 135911
D-TLB userspace misses: 289452
D-TLB kernel misses: 257039
v2.6 without CONFIG_PIN_TLB:
I-TLB userspace misses: 160828
I-TLB kernel misses: 134746
D-TLB userspace misses: 253557
D-TLB kernel misses: 227383
The following BDI output shows the pinned, 8MByte data page mapping present,
at 0xc0000000.
BDI>rds 826
SPR 826 : 0x00007f00 32512
BDI>rms 792 0x0c001C00
BDI>rms 824 1
BDI>rds 824
SPR 824 : 0xc00000f0 -1073741584
BDI>rds 825
SPR 825 : 0x00000fe0 4064
BDI>rds 826
SPR 826 : 0x00007fff 32767 <- "0x00007fff" was 0x00007f00" initially.
I tried enabling usermode access without
success.
There are several 4Kb mappings inside the range covered by this 8Mb TLB entry,
for example:
BDI>rms 792 0x0c000200
BDI>rms 824 1
BDI>rds 824
SPR 824 : 0xc0224f17 -1071493353
BDI>rds 825
SPR 825 : 0x002241e0 2245088
BDI>rds 826
SPR 826 : 0x00007f00 32512
And more, without so much detail:
SPR 824 : 0xc0224f17 -1071493353
SPR 824 : 0xc01fbf17 -1071661289
SPR 824 : 0xc0246f17 -1071354089
SPR 824 : 0xc023ff17 -1071382761
SPR 824 : 0xc7e35f17 - 941400297
SPR 824 : 0xc0244f17 -1071362281
SPR 824 : 0xc023ef17 -1071386857
Note that protection (SPR 826) is exactly the same as the 8Mbyte page protection.
Why is the translation mechanism rejection the pinned mappings?
Dan, have you ever seen this work? Am I misunderstanding how the pinned
entries are supposed to work?
More information about the Linuxppc-embedded
mailing list