From: Andrew M. <ak...@zi...> - 2002-07-27 06:08:19
|
Rusty Russell wrote: > > In message <3D4...@zi...> you write: > > Good. And will it be possible to iterate across all CPUs > > without having to iterate across NR_CPUS? > > Hmm, define *all cpus* please? All online cpus? All possible CPUs? All possible. > Interface discussed with DaveM was: first_cpu(), next_cpu(cpu), which > covers online CPUs, and gives a nice interface for things like irq > balancers which want to snarf the next online cpu. > > Like it? for (cpu = first_cpu(); cpu != (what?); cpu = next_cpu(cpu)) that'll work. > ... > > > The is pretty much entirely wasted memory, and it will only get > > worse. Making NR_CPUS compile-time configurable is a lame solution. > > Wasting the memory is out of the question. > > > > Dynamic allocation is the only thing left, yes? > > Um, no! Here is the plan: > > 1) change per-cpu data to only allocate data for cpus where > cpu_possible(i) (add cache coloring and NUMA allocation as desired). > > 2) Convert non-modular cases to use per-cpu data (once the interface > changes again, <SIGH>). > > We'll end up using *less* memory than before. We're just doing it in > easy stages. > > Feel better now? Yup. - |