Re: [PATCH v7 8/8] x86/tlb: just do tlb flush on one of siblings of SMT

From: Rusty Russell
Date: Thu May 24 2012 - 08:08:47 EST


On Thu, 24 May 2012 16:48:37 +0800, Alex Shi <alex.shi@xxxxxxxxx> wrote:
> On 05/24/2012 04:42 PM, Peter Zijlstra wrote:
>
> > On Thu, 2012-05-24 at 16:32 +0800, Alex Shi wrote:
> >> So, I use cpumask_t in stack.
> >
> > cpumask_t is 512 bytes with NR_CPUS=4096, that's generally considered
> > too big to be on stack.
> >
> > A number of people spend a lot of time removing cpumask_t from stacks a
> > while ago, I'm very sure they'll not be happy if you're going to add it
> > back.
>
>
> In my testing, allocate a cpumask_var_t is more worse than cpumask_t.
> So, another choice is using percpu pre-allocatd cpumask for this, but I
> am wondering if it is acceptable. What's suggestion for this point?

Thanks for the ping Peter!

Please don't use cpus_ operations: they're deprecated. Use cpumask_.
Similarly, avoid cpumask_t.

And yes, if you configure for thousands of CPUs, it's not free! If it's
a significant, you will want to use a per-cpu cpumask_var_t.

My other thought: your patch seems optimal as far as avoiding IPIs goes,
but I wonder how often it folds down to a single CPU? That case is
easier to fast-path without using a new cpumask.

Cheers,
Rusty.
--
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/