Re: TLB evaluation for Linux

From: Arjan van de Ven
Date: Tue Sep 02 2008 - 09:44:10 EST


On Tue, 2 Sep 2008 00:12:03 -0400 (EDT)
"CHADHA,VINEET" <vineet@xxxxxxx> wrote:

> Hi,
>
> I have been working to evaluate TLB performance for Linux O/S and
> virtualized workloads(such as Xen) in a Full system simulator(e.g.
> simics). While my evaluation is in nascent stage, I do notice that
> most of the IPIs in multi-core environments cause complete TLB
> Flush.

note that linux only does an ipi to processors that actually are
currently running a thread of the same program (or a kernel thread).
Old versions didn't do this (they also IPI'd idle processors), but
on modern cpus and modern kernels that's not supposed to happen anymore
(the C-states that flush the tlb anyway now do the kernel side
bookkeeping as well to avoid the wakeup+useless flush)
>
> I want to evaluate cost of TLB shootdown including re-population
> vs. each entry shootdown (invlpg). While a similar study has been
> done in other kernels (e.g. L4 kernel), I am not aware if it has
> been done for Linux O/S.
>

one of the problems is that invlpg is rather expensive; in long-ago
experiments the threshold was like around a handful of pages already.
At that point.. all the bookkeeping isn't likely to be a win.
Esp since a tlb refill on x86 is quite cheap.

--
If you want to reach me at my work email, use arjan@xxxxxxxxxxxxxxx
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/