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.