All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Zimmer <nzimmer@sgi.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Greg KH <gregkh@linuxfoundation.org>, <holt@sgi.com>,
	<travis@sgi.com>, <rob@landley.net>, <tglx@linutronix.de>,
	<mingo@redhat.com>, <yinghai@kernel.org>,
	<akpm@linux-foundation.org>, <x86@kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [RFC 0/2] Delay initializing of large sections of memory
Date: Fri, 21 Jun 2013 12:18:21 -0500	[thread overview]
Message-ID: <51C48ADD.207@sgi.com> (raw)
In-Reply-To: <51C48745.9030304@zytor.com>

On 06/21/2013 12:03 PM, H. Peter Anvin wrote:
> On 06/21/2013 09:51 AM, Greg KH wrote:
>> On Fri, Jun 21, 2013 at 11:25:32AM -0500, Nathan Zimmer wrote:
>>> This rfc patch set delays initializing large sections of memory until we have
>>> 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.
>> Why make this a config option at all, why not just always do this if the
>> 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.
>>
> Since you made it a compile time option, it would be good to know how
> 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.)
The patchset as a whole is just over 400 lines so it doesn't add alot.
If I were to pull the .config option it would probably remove 30 lines.

The command line option is too complex but some of the data I haven't 
found a way
to get at runtime yet.


>
> 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.
Even at lower amounts of ram there is an positive impact.I it knocks 
time off
boot even at as small as a 1TB of ram.

> 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.
>
> 	-hpa
>
>
>
>


Ok

  reply	other threads:[~2013-06-21 17:18 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-21 16:25 [RFC 0/2] Delay initializing of large sections of memory Nathan Zimmer
2013-06-21 16:25 ` [RFC 1/2] x86_64, mm: Delay initializing large portion " Nathan Zimmer
2013-06-25  4:14   ` Rob Landley
2013-06-21 16:25 ` [RFC 2/2] x86_64, mm: Reinsert the absent memory Nathan Zimmer
2013-06-23  9:28   ` Ingo Molnar
2013-06-23  9:32     ` Ingo Molnar
2013-06-24 17:38       ` H. Peter Anvin
2013-06-24 19:39         ` Ingo Molnar
2013-06-24 20:08           ` H. Peter Anvin
2013-06-25  7:31             ` Ingo Molnar
2013-06-24 20:36     ` Nathan Zimmer
2013-06-25  7:38       ` Ingo Molnar
2013-06-25 15:07         ` H. Peter Anvin
2013-06-25 17:19           ` Mike Travis
2013-06-25 17:22         ` Mike Travis
2013-06-25 18:43           ` H. Peter Anvin
2013-06-25 18:51             ` Mike Travis
2013-06-26  9:22               ` [RFC] Transparent on-demand memory setup initialization embedded in the (GFP) buddy allocator Ingo Molnar
2013-06-26 13:28                 ` Andrew Morton
2013-06-26 13:37                   ` Ingo Molnar
2013-06-26 15:02                     ` Nathan Zimmer
2013-06-26 16:15                     ` Mike Travis
2013-06-26 12:14       ` [RFC 2/2] x86_64, mm: Reinsert the absent memory Ingo Molnar
2013-06-26 14:49         ` Nathan Zimmer
2013-06-26 15:12           ` Dave Hansen
2013-06-26 15:20             ` Nathan Zimmer
2013-06-26 15:58               ` Ingo Molnar
2013-06-26 16:11                 ` Nathan Zimmer
2013-06-26 16:07         ` Mike Travis
2013-06-21 16:51 ` [RFC 0/2] Delay initializing of large sections of memory Greg KH
2013-06-21 17:03   ` H. Peter Anvin
2013-06-21 17:18     ` Nathan Zimmer [this message]
2013-06-21 17:28       ` H. Peter Anvin
2013-06-21 20:05         ` Nathan Zimmer
2013-06-21 20:08           ` H. Peter Anvin
2013-06-21 20:33             ` Nathan Zimmer
2013-06-21 21:36             ` Mike Travis
2013-06-21 21:07       ` Mike Travis
2013-06-21 18:44     ` Yinghai Lu
2013-06-21 18:50       ` Greg KH
2013-06-21 19:10         ` Yinghai Lu
2013-06-21 19:19           ` Nathan Zimmer
2013-06-21 20:28             ` Yinghai Lu
2013-06-21 20:40               ` Nathan Zimmer
2013-06-21 21:30         ` Mike Travis
2013-06-22  0:23           ` Yinghai Lu
2013-06-25 17:35             ` Mike Travis
2013-06-25 18:17               ` H. Peter Anvin
2013-06-25 18:40                 ` Mike Travis
2013-06-25 18:40                 ` Yinghai Lu
2013-06-25 18:44                   ` H. Peter Anvin
2013-06-25 18:58                     ` Mike Travis
2013-06-25 19:03                       ` Yinghai Lu
2013-06-25 19:09                         ` H. Peter Anvin
2013-06-25 19:28                           ` Yinghai Lu
2013-06-27  6:37                       ` Yinghai Lu
2013-06-27 11:05                         ` Robin Holt
2013-06-27 15:50                         ` Mike Travis
2013-06-26  9:23                   ` Ingo Molnar
2013-06-25 18:38               ` Yinghai Lu
2013-06-25 18:42                 ` Mike Travis
2013-06-21 18:36 ` Yinghai Lu
2013-06-21 18:44   ` Greg Kroah-Hartman
2013-06-21 19:00     ` Yinghai Lu
2013-06-21 21:28       ` Mike Travis
2013-06-21 21:19   ` Mike Travis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51C48ADD.207@sgi.com \
    --to=nzimmer@sgi.com \
    --cc=akpm@linux-foundation.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=holt@sgi.com \
    --cc=hpa@zytor.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rob@landley.net \
    --cc=tglx@linutronix.de \
    --cc=travis@sgi.com \
    --cc=x86@kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.