On Mon, Jan 29, 2007 at 05:00:11PM +0800, Xu, Anthony wrote:
> Isaku Yamahata write on 2007年1月29日 15:35:
> > Hi Anthony.
> >
> > On Mon, Jan 29, 2007 at 02:31:14PM +0800, Xu, Anthony wrote:
> >
> >> Could you elaberate the purpose of new_tlbflush_clock_period?
> >
> > Tlb flush clock is the optimization to try to remove unnecessary
> > flush of mCPU tlb cache or vhpt by NEED_FLUSH().
> > It uses a single counter, tlbflush_time, which is incremented when
> > mCPU tlb cache or vhpt is flushed.
> > When the counter overflows, something must be done.
> > new_tlbflush_clock_period() does it.
>
> I don't catch why it can optimize NEED_FLUSH.
> Can you explain more detail?
It doesn't optimize NEED_FLUSH itself.
The optimization path is executed when NEED_FLUSH return 0.
See flush_vtlb_for_context_switch() @ xen/arch/ia64/xehn/domain.c.
When CONFIG_XEN_IA64_TLBFLUSH_CLOCK is defined,
NEED_FLUSH() always returns 1. No optimization.
Suppose that CONFIG_XEN_IA64_TLBFLUSH_CLOCK is defined and
NEED_FLUSH() returns 0.
In that case, we can skip local_vhpt_flush() or local_flush_tlb_all().
--
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|