Messages in this thread | | | From | Rusty Russell <> | Subject | Re: [PATCH 1/2] kvm: use modern cpumask primitives, no cpumask_t on stack | Date | Mon, 8 Dec 2008 16:38:07 +1030 |
| |
On Monday 08 December 2008 02:44:00 Avi Kivity wrote: > Avi Kivity wrote: > > Rusty Russell wrote: > >> We're getting rid on on-stack cpumasks for large NR_CPUS. > >> > >> 1) Use cpumask_var_t and alloc_cpumask_var (a noop normally). Fallback > >> code is inefficient but never happens in practice. > > > > Wow, code duplication from Rusty. Things must be bad. > > > > Since we're in a get_cpu() here, how about a per_cpu static cpumask > > instead? I don't mind the inefficient fallback, just the duplication. > > > > Btw, for the general case, instead of forcing everyone to duplicate, how > about: > > cpumask_var_t cpus; > > with_cpumask(cpus) { > ... code to populate cpus > smp_call_function_some(...); > } end_with_cpumask(cpus); > > Where with_cpumask() allocates cpus, and uses a mutex + static fallback > on failure.
I'd prefer not to hide deadlocks that way :(
I'll re-battle with that code to neaten it. There are only a few places which have these kind of issues.
Thanks, Rusty.
| |