Re: [rfc][patch] x86-64 new smp_call_function design

From: Nick Piggin
Date: Wed Feb 27 2008 - 08:50:56 EST


On Wed, Feb 27, 2008 at 02:27:13PM +0100, Ingo Molnar wrote:
>
> * Nick Piggin <npiggin@xxxxxxx> wrote:
>
> > This isn't finished yet, however I'd just like to ask for comments.
>
> looks really interesting!
>
> only one fundamental observation:
>
> > +struct call_data {
> > + spinlock_t lock;
> > + struct list_head list;
> > void (*func) (void *info);
> > void *info;
> > + unsigned int flags;
> > + unsigned int refs;
> > + cpumask_t cpumask;
> > + struct rcu_head rcu_head;
> > };
>
> > +struct call_single_data {
> > + struct list_head list;
> > + void (*func) (void *info);
> > + void *info;
> > + unsigned int flags;
> > +};
>
> the two structures are quite similar in size and role - why not have a
> type field and handle them largely together? I think we should try to
> preserve a single queue and a single vector - that would remove a number
> of ugly special-cases from the patch.

A single queue will kill one of the big fundamental scalability
improvements of the call_single. That's the problem.

--
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/