Quoting nathan binkert <[email protected]>:

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
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev


I think so. Basically we'd separate the thing that gets the entries and applies the end result from the thing that interprets what the entries actually mean. That sounds plausible.

Gabe
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to