Very important paging question !!!!!!!!!

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Morpheus

Very important paging question !!!!!!!!!

Post by Morpheus »

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 ??
Shmooze

RE:Very important paging question !!!!!!!!!

Post by Shmooze »

The parameter is the *virtual* address you want to invalidate... so say you invalidated 0x1000, you'd go:

mov eax,0x1000
invlpg eax
hartyl

RE:Very important paging question !!!!!!!!!

Post by hartyl »

my assembler didn't allow "invlpg eax", but it works with "invlpg [eax]" as well.

greets, hartyl
morpheus

RE:Very important paging question !!!!!!!!!

Post by morpheus »

thanks mate

this really works :p
prabuinet

RE:Very important paging question !!!!!!!!!

Post by prabuinet »

i think this would help you,

just reload the cr3 register. (if 386)

movl %cr3, %eax
movl %eax, %cr3
Legend

RE:Very important paging question !!!!!!!!!

Post by Legend »

Using INVPLG to invalidate some addresses should be far more efficient then trashing the whole TLB. Works only on the 486 and above ofc ...
Post Reply