From: Nathan Fontenot <nfont@austin.ibm.com>
To: Greg KH <greg@kroah.com>
Cc: linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Robin Holt <holt@sgi.com>
Subject: [PATCH 0/4] De-couple sysfs memory directories from memory sections
Date: Thu, 20 Jan 2011 10:36:40 -0600 [thread overview]
Message-ID: <4D386498.9080201@austin.ibm.com> (raw)
This is a re-send of the remaining patches that did not make it
into the last kernel release for de-coupling sysfs memory
directories from memory sections. The first three patches of the
previous set went in, and this is the remaining patches that
need to be applied.
The patches decouple the concept that a single memory section corresponds
to a single directory in /sys/devices/system/memory/. On systems
with large amounts of memory (1+ TB) there are performance issues
related to creating the large number of sysfs directories. For
a powerpc machine with 1 TB of memory we are creating 63,000+
directories. This is resulting in boot times of around 45-50
minutes for systems with 1 TB of memory and 8+ hours for systems
with 2 TB of memory. With this patch set applied I am now seeing
boot times of 5 minutes or less.
The root of this issue is in sysfs directory creation. Every time
a directory is created a string compare is done against sibling
directories ( see sysfs_find_dirent() ) to ensure we do not create
duplicates. The list of directory nodes in sysfs is kept as an
unsorted list which results in this being an exponentially longer
operation as the number of directories are created.
The solution solved by this patch set is to allow a single
directory in sysfs to span multiple memory sections. This is
controlled by an optional architecturally defined function
memory_block_size_bytes(). The default definition of this
routine returns a memory block size equal to the memory section
size. This maintains the current layout of sysfs memory
directories as it appears to userspace to remain the same as it
is today.
For architectures that define their own version of this routine,
as is done for powerpc and x86 in this patchset, the view in userspace
would change such that each memoryXXX directory would span
multiple memory sections. The number of sections spanned would
depend on the value reported by memory_block_size_bytes.
-Nathan Fontenot
next reply other threads:[~2011-01-20 16:38 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-20 16:36 Nathan Fontenot [this message]
2011-01-20 16:43 ` [PATCH 1/4] Allow memory blocks to span multiple memory sections Nathan Fontenot
2011-01-20 16:44 ` [PATCH 2/4] Update phys_index to [start|end]_section_nr Nathan Fontenot
2011-01-20 16:45 ` [PATCH 3/4]Define memory_block_size_bytes for powerpc/pseries Nathan Fontenot
2011-02-06 23:39 ` Benjamin Herrenschmidt
2011-02-07 1:42 ` Greg KH
2011-01-20 16:45 ` [PATCH 0/4] De-couple sysfs memory directories from memory sections Greg KH
2011-01-20 16:51 ` Nathan Fontenot
2011-01-20 17:25 ` Greg KH
2011-01-20 17:09 ` Dave Hansen
2011-01-20 16:46 ` [PATCH 4/4] Define memory_block_size_bytes for x86_64 with CONFIG_X86_UV Nathan Fontenot
-- strict thread matches above, loose matches on Subject: below --
2011-01-10 18:08 [PATCH 0/4] De-couple sysfs memory directories from memory sections Nathan Fontenot
2011-01-10 18:44 ` Greg KH
2011-01-10 18:47 ` Nathan Fontenot
2011-01-10 19:11 ` Robin Holt
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=4D386498.9080201@austin.ibm.com \
--to=nfont@austin.ibm.com \
--cc=greg@kroah.com \
--cc=holt@sgi.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.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).