> We're assuming the OS is not broken, and it's responsible for
> invalidating TLB entries before it changes to virtual-to-physical
> mapping (which is all we care about, not the permissions, I still
> contend).  Maybe that's not a great assumption if you're using m5 to
> debug the OS.  If we're concerned about this, I think the right (&
> easiest) answer is to just bypass the TLB and always walk the page
> tables.

I agree that we should always bypass the TLB, it's not like
performance is an issue anyway.  I think a very minor restructuring of
the code could make it pretty easy to support all three access types.
Basically, if we separated the bit fiddling code (that interprets the
various entries) in X86ISA::Walker::doNext from the code that actually
manipulates the tlb and does the accesses, it would be pretty easy.
This can be done by basically moving the switch statement into a
separate object.  The doNext code could call the object->doNext,
passing in the new data that should be interpreted, and depending on
the return value, raise a fault, or update the TLB.

Make sense?

  Nate
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to