[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] TB Chaining NOT Reset on TLB Flush??
From: |
amateur |
Subject: |
Re: [Qemu-devel] TB Chaining NOT Reset on TLB Flush?? |
Date: |
Sun, 17 Jun 2007 11:11:36 +0800 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
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.