On 06/21/2013 09:51 AM, Greg KH wrote:The patchset as a whole is just over 400 lines so it doesn't add alot.On Fri, Jun 21, 2013 at 11:25:32AM -0500, Nathan Zimmer wrote:Since you made it a compile time option, it would be good to know howThis rfc patch set delays initializing large sections of memory until we haveWhy make this a config option at all, why not just always do this if the
started cpus. This has the effect of reducing startup times on large memory
systems. On 16TB it can take over an hour to boot and most of that time
is spent initializing memory.
We avoid that bottleneck by delaying initialization until after we have
started multiple cpus and can initialize in a multithreaded manner.
This allows us to actually reduce boot time rather then just moving around
the point of initialization.
Mike and I have worked on this set for a while, with him doing the most of the
heavy lifting, and are eager for some feedback.
memory size is larger than some specific number (like 8TB?)
Otherwise the distros will always enable this option, and having it be a
configuration choice doesn't make any sense.
much code it adds, but otherwise I agree with Greg here... this really
shouldn't need to be an option. It *especially* shouldn't need to be a
hand-set runtime option (which looks quite complex, to boot.)
Even at lower amounts of ram there is an positive impact.I it knocks time off
I suspect the cutoff for this should be a lot lower than 8 TB even, more
like 128 GB or so. The only concern is to not set the cutoff so low
that we can end up running out of memory or with suboptimal NUMA
placement just because of this.
Also, in case it is not bloody obvious: whatever memory the kernel image
was loaded into MUST be considered "online", even if it is loaded way high.