Messages in this thread | | | Date | Thu, 10 Jul 2008 16:37:02 -0700 | From | Mike Travis <> | Subject | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| |
H. Peter Anvin wrote: > Mike Travis wrote: >> >> The biggest growth came from moving all the xxx[NR_CPUS] arrays into >> the per cpu area. So you free up a huge amount of unused memory when >> the NR_CPUS count starts getting into the ozone layer. 4k now, 16k >> real soon now, ??? future? >> > > Even (or perhaps especially) so, allocating the percpu area in 2 MB > increments is a total nonstarter. It hurts the small, common > configurations way too much. For SGI, it's probably fine. > > -hpa
Yes, "right-sizing" the kernel for systems from 512M laptops to 4k cpu systems with memory totally maxed out, using only a binary distribution has proven tricky (at best... ;-)
One alternative was to only allocate a chunk similar in size to PERCPU_ENOUGH_ROOM and allow for startup options to create a bigger space if needed. Though the realloc idea has some merit if we can validate the non-use of pointers to specific cpu's percpu vars. (CPU_ALLOC contains a function to dereference a percpu offset.)
The discussion started at:
http://marc.info/?l=linux-kernel&m=121212026716085&w=4
Thanks, Mike
| |