No, the low 6 bits contain other information maintained by the kernel.
Shifting right by 6 bits is used to drop these software bits. The
hardware bits are stored in bits 6 and up in a pte so the shift operation
is going to move them into the right place.
yes, i know why shout shift this 6 bits, see this :
entrylo[01]:
3130 29 6 5 3 2 1 0
-------------------------------------------
| | PFN | C |D|V|G|
-------------------------------------------
linux pte:
31 12 111098 7 6 5 3 2 1 0
-------------------------------------------
| PFN | C |D|V|G|B|M|A|W|R|P|
-------------------------------------------
so , the linux PTE has the least significant 6 bits is mantain by linux PTE, the hardware
PTE entrylo[0~1] have no such bits, so it need to shift .
ralf, is some description on the kernel code? if it has, it would be easy understand .
A TLB write instruction about 5 lines further down in the code.
> D:
> V:
> G:
>
> and how the kernel write the this 6 bit to entrylo0/1 register?
Ralf