Messages in this thread | | | Date | Wed, 27 Feb 2008 14:50:41 +0100 | From | Nick Piggin <> | Subject | Re: [rfc][patch] x86-64 new smp_call_function design |
| |
On Wed, Feb 27, 2008 at 02:27:13PM +0100, Ingo Molnar wrote: > > * Nick Piggin <npiggin@suse.de> 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.
| |