On Sat, Jun 16, 2007 at 02:27:05PM +0100, Paul Brook wrote:
> > I read from the Qemu internal documentation this:
> >     ``When MMU mappings change, only the chaining of the basic
> >     blocks is reset (i.e. a basic block can no longer jump directly
> >     to another one).''
> >
> > But when I read the code, I find that tlb_flush() doesn't reset the
> > chaining between TBs. Is that the intended behaviour?? Won't that
> > cause problems on guest context switch??
> 
> The internals documentation is out of date. TBs are only chained directly 
> when 
> both source and destination are on the same page.
-------------------------
Thank you, Paul. I got it.

I can imagine that this decision is based on a performance evaluation,
right? But given that TLB flush(mov %cr3, %reg | invlpg) be a relative
rare case, it's hard to believe that reset the chaining on each TLB
flush would hurt the performance a lot. Can you shed some light on
where can I find some profiling data or performance statistics, or
links to some discussions on this?

-- 
You will not be elected to public office this year.


Reply via email to