When you make changes to the page tables you've to update the tlb with the 'invlpg' command
My question is,
what parameter should I use for this command (assembler)
invlpg ??
Very important paging question !!!!!!!!!
RE:Very important paging question !!!!!!!!!
The parameter is the *virtual* address you want to invalidate... so say you invalidated 0x1000, you'd go:
mov eax,0x1000
invlpg eax
mov eax,0x1000
invlpg eax
RE:Very important paging question !!!!!!!!!
my assembler didn't allow "invlpg eax", but it works with "invlpg [eax]" as well.
greets, hartyl
greets, hartyl
RE:Very important paging question !!!!!!!!!
i think this would help you,
just reload the cr3 register. (if 386)
movl %cr3, %eax
movl %eax, %cr3
just reload the cr3 register. (if 386)
movl %cr3, %eax
movl %eax, %cr3
RE:Very important paging question !!!!!!!!!
Using INVPLG to invalidate some addresses should be far more efficient then trashing the whole TLB. Works only on the 486 and above ofc ...