Saturday 22 October 2011

Kernel Space does not go through the TLB

This confused me for a bit but now I have got it all sorted out.

Any virtual address greater than 0x80000000 does NOT go through the TLB. So all you have to do in allock_pages is find an open slot in your coremap and return paddr + 0x80000000. No need to write into your TLB or any processes page tables.

Hope this clears up any confusion between User Mode virtual addresses and Kernel Mode virtual addresses

- FlounderingZ

1 comment:

  1. According to mips/include/vm.h, there is a TLB mapping 0xc0000000 and beyond - so maybe 0x80000000 - 0xbfffffff don't go through the TLB?

    ReplyDelete