Messages in this thread | | | Date | Mon, 28 Apr 2008 09:38:17 +0200 | From | Jes Sorensen <> | Subject | Re: [PATCH 1/11] Add generic helpers for arch IPI function calls |
| |
Jeremy Fitzhardinge wrote: > Jens Axboe wrote: >> On Thu, Apr 24 2008, Russell King wrote: >>> On Tue, Apr 22, 2008 at 08:50:17PM +0200, Jens Axboe wrote: >>>> + data->csd.func(data->csd.info); >>>> + >>>> + spin_lock(&data->lock); >>>> + cpu_clear(cpu, data->cpumask); >>>> + WARN_ON(data->refs == 0); >>>> + data->refs--; >>>> + refs = data->refs; >>>> >>> Probably a silly question, but what does data->refs do that >>> cpus_empty(data->cpumask) wouldn't do? (as indeed ARM presently does.) >> >> I guess it can be marginally slower for NR_CPUS > BITS_PER_LONG, >> otherwise there's absolutely no reason to have a seperate ref counter. > > Jes was concerned about scanning bitmasks on a 4096 CPU Altix. I'm not > sure its all that important, but a refcount check would definitely be > quicker.
I just felt it was silly to do a bigger test if it wasn't necessary. Even on a 4096 CPU box it's probably barely noticeable, but if it adds cost then I'd be in favor of keeping the slightly faster version. Maybe it would be worth doing a branched version, one for NR_CPUS <= BITS_PER_LONG and one for the other case?
Cheers, Jes
| |