Messages in this thread | | | Date | Tue, 11 Jun 2013 10:16:46 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH RFC ticketlock] Auto-queued ticketlock |
| |
On Tue, Jun 11, 2013 at 01:01:55PM -0400, Steven Rostedt wrote: > On Tue, 2013-06-11 at 09:36 -0700, Paul E. McKenney wrote: > > > > I am a bit concern about the size of the head queue table itself. > > > RHEL6, for example, had defined CONFIG_NR_CPUS to be 4096 which mean > > > a table size of 256. Maybe it is better to dynamically allocate the > > > table at init time depending on the actual number of CPUs in the > > > system. > > > > But if your kernel is built for 4096 CPUs, the 32*256=8192 bytes of memory > > is way down in the noise. Systems that care about that small an amount > > of memory probably have a small enough number of CPUs that they can just > > turn off queueing at build time using CONFIG_TICKET_LOCK_QUEUED=n, right? > > If this turns out to work for large machines, that means that distros > will enable it, and distros tend to up the NR_CPUS, which is defined at > compile time and is set regardless of if you are running with 2 CPUs or > a 1000 CPUs. > > For now it's fine to use NR_CPUS, but I always try to avoid it. Working > in the ARM and POWER environment you are use to lots of kernels compiled > specifically for the target. But in the x86 world, it is basically one > kernel for all environments, where NR_CPUS does make a big difference.
Fair point. Something to worry about should this ever be in danger of actually going upstream. ;-)
Thanx, Paul
| |