linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Paul Menzel <pmenzel@molgen.mpg.de>
To: Feng Tang <feng.tang@intel.com>
Cc: linux-mm@kvack.org, Arjan van de Ven <arjan@linux.intel.com>
Subject: Deferred Memory Init: How to bring rest of memory online after limiting it with `mem=XG`?
Date: Thu, 3 Dec 2020 11:51:58 +0100	[thread overview]
Message-ID: <b7cd0584-0fd4-a926-b254-273943504293@molgen.mpg.de> (raw)

Dear Feng,


I am trying to reduce the startup time of Debian’s Linux 5.9.9 on a 
Intel Kaby Lake system with 32 GB of memory (TUXEDO Book BU1406 (Clevo 
N240BU)). On your Linux Plumbers Conference 2019 slides of your talk 
*Linux Kernel Fastboot On the Way* [1], you mention *Deferred Memory Init*:

> Deferred Memory Init
> 
> •   8GB RAM’s initialization costs 100+ ms
> •   In early boot phase, we don’t need that much memory
> •   Utilize the memory hotplug feature
>     •   “mem=4096m” in cmdline to only init 2 GB
>     •   Use systemd service to add rest memory in parallel

Starting Linux with `mem=2G` indeed reduces the startup time, but I am 
unable to get the rest of the memory online. Comparing it with a boot 
without `mem=2G` the `memoryX`  devices under 
`/sys/devices/system/memory/` are missing.

With `mem=2G`:

$ lsmem --output-all
RANGE                                  SIZE  STATE REMOVABLE BLOCK NODE 
ZONES
0x0000000000000000-0x0000000007ffffff  128M online       yes     0    0 
None
0x0000000008000000-0x000000007fffffff  1,9G online       yes  1-15    0 
DMA32

Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B
$ ls -d /sys/devices/system/memory/memory*
/sys/devices/system/memory/memory0   /sys/devices/system/memory/memory2
/sys/devices/system/memory/memory1   /sys/devices/system/memory/memory3
/sys/devices/system/memory/memory10  /sys/devices/system/memory/memory4
/sys/devices/system/memory/memory11  /sys/devices/system/memory/memory5
/sys/devices/system/memory/memory12  /sys/devices/system/memory/memory6
/sys/devices/system/memory/memory13  /sys/devices/system/memory/memory7
/sys/devices/system/memory/memory14  /sys/devices/system/memory/memory8
/sys/devices/system/memory/memory15  /sys/devices/system/memory/memory9
```

Without `mem=2G`:

```
$ lsmem --output-all
RANGE                                  SIZE  STATE REMOVABLE  BLOCK NODE 
  ZONES
0x0000000000000000-0x0000000007ffffff  128M online       yes      0    0 
   None
0x0000000008000000-0x0000000087ffffff    2G online       yes   1-16    0 
  DMA32
0x0000000088000000-0x000000008fffffff  128M online       yes     17    0 
   None
0x0000000100000000-0x0000000867ffffff 29,6G online       yes 32-268    0 
Normal
0x0000000868000000-0x000000086fffffff  128M online       yes    269    0 
   None

Memory block size:       128M
Total online memory:      32G
Total offline memory:      0B
```

Can the deferred memory initialization be done with the upstream Linux 
kernel, or were you using patches on top?


Kind regards,

Paul


[1]: 
https://www.linuxplumbersconf.org/event/4/contributions/281/attachments/216/617/LPC_2019_kernel_fastboot_on_the_way.pdf


             reply	other threads:[~2020-12-03 10:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-03 10:51 Paul Menzel [this message]
2020-12-03 12:25 ` Deferred Memory Init: How to bring rest of memory online after limiting it with `mem=XG`? David Hildenbrand
2020-12-03 12:52   ` Paul Menzel
2020-12-03 13:06     ` David Hildenbrand
2020-12-03 20:58       ` Daniel Jordan
2020-12-04  7:31         ` Paul Menzel
2020-12-04 19:50           ` Daniel Jordan
2020-12-04  1:17   ` Feng Tang
2020-12-04  8:05 ` Feng Tang

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=b7cd0584-0fd4-a926-b254-273943504293@molgen.mpg.de \
    --to=pmenzel@molgen.mpg.de \
    --cc=arjan@linux.intel.com \
    --cc=feng.tang@intel.com \
    --cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).