From: "Martin J. Bligh" <mbligh@aracnet.com>
To: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: memory hotremove prototype, take 3
Date: Wed, 03 Dec 2003 11:41:01 -0800 [thread overview]
Message-ID: <187360000.1070480461@flay> (raw)
In-Reply-To: <20031201034155.11B387007A@sv1.valinux.co.jp>
> this is a new version of my memory hotplug prototype patch, against
> linux-2.6.0-test11.
>
> Freeing 100% of a specified memory zone is non-trivial and necessary
> for memory hot removal. This patch splits memory into 1GB zones, and
> implements complete zone memory freeing using kswapd or "remapping".
>
> A bit more detailed explanation and some test scripts are at:
> http://people.valinux.co.jp/~iwamoto/mh.html
>
> Main changes against previous versions are:
> - The stability is greatly improved. Kernel crashes (probably related
> with kswapd) still happen, but they are rather rare so that I'm
> having difficulty reproducing crashes.
> Page remapping under simultaneous tar + rm -rf works.
> - Implemented a solution to a deadlock caused by ext2_rename, which
> increments a refcount of a directory page twice.
>
> Questions and comments are welcome.
I really think that doing this over zones and pgdats isn't the best approach.
You're going to make memory allocation and reclaim vastly less efficient,
and you're exposing a bunch of very specialised code inside the main
memory paths.
Have you looked at Daniel's CONFIG_NONLINEAR stuff? That provides a much
cleaner abstraction for getting rid of discontiguous memory in the non
truly-NUMA case, and should work really well for doing mem hot add / remove
as well.
M.
PS. What's this bit of the patch for?
void *vmalloc(unsigned long size)
{
+#ifdef CONFIG_MEMHOTPLUGTEST
+ return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL);
+#else
return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL);
+#endif
}
WARNING: multiple messages have this Message-ID (diff)
From: "Martin J. Bligh" <mbligh@aracnet.com>
To: IWAMOTO Toshihiro <iwamoto@valinux.co.jp>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: memory hotremove prototype, take 3
Date: Wed, 03 Dec 2003 11:41:01 -0800 [thread overview]
Message-ID: <187360000.1070480461@flay> (raw)
In-Reply-To: <20031201034155.11B387007A@sv1.valinux.co.jp>
> this is a new version of my memory hotplug prototype patch, against
> linux-2.6.0-test11.
>
> Freeing 100% of a specified memory zone is non-trivial and necessary
> for memory hot removal. This patch splits memory into 1GB zones, and
> implements complete zone memory freeing using kswapd or "remapping".
>
> A bit more detailed explanation and some test scripts are at:
> http://people.valinux.co.jp/~iwamoto/mh.html
>
> Main changes against previous versions are:
> - The stability is greatly improved. Kernel crashes (probably related
> with kswapd) still happen, but they are rather rare so that I'm
> having difficulty reproducing crashes.
> Page remapping under simultaneous tar + rm -rf works.
> - Implemented a solution to a deadlock caused by ext2_rename, which
> increments a refcount of a directory page twice.
>
> Questions and comments are welcome.
I really think that doing this over zones and pgdats isn't the best approach.
You're going to make memory allocation and reclaim vastly less efficient,
and you're exposing a bunch of very specialised code inside the main
memory paths.
Have you looked at Daniel's CONFIG_NONLINEAR stuff? That provides a much
cleaner abstraction for getting rid of discontiguous memory in the non
truly-NUMA case, and should work really well for doing mem hot add / remove
as well.
M.
PS. What's this bit of the patch for?
void *vmalloc(unsigned long size)
{
+#ifdef CONFIG_MEMHOTPLUGTEST
+ return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL);
+#else
return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL);
+#endif
}
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
next prev parent reply other threads:[~2003-12-03 19:41 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-01 3:41 memory hotremove prototype, take 3 IWAMOTO Toshihiro
2003-12-01 3:41 ` IWAMOTO Toshihiro
2003-12-01 19:56 ` Pavel Machek
2003-12-01 19:56 ` Pavel Machek
2003-12-03 19:41 ` Martin J. Bligh [this message]
2003-12-03 19:41 ` Martin J. Bligh
2003-12-04 3:58 ` IWAMOTO Toshihiro
2003-12-04 3:58 ` IWAMOTO Toshihiro
2003-12-04 5:38 ` Martin J. Bligh
2003-12-04 5:38 ` Martin J. Bligh
2003-12-04 15:44 ` IWAMOTO Toshihiro
2003-12-04 15:44 ` IWAMOTO Toshihiro
2003-12-04 17:12 ` Martin J. Bligh
2003-12-04 17:12 ` Martin J. Bligh
2003-12-04 18:27 ` Jesse Barnes
2003-12-04 18:27 ` Jesse Barnes
2003-12-04 18:29 ` Martin J. Bligh
2003-12-04 18:29 ` Martin J. Bligh
2003-12-04 18:59 ` Jesse Barnes
2003-12-04 18:59 ` Jesse Barnes
-- strict thread matches above, loose matches on Subject: below --
2003-12-01 20:12 Luck, Tony
2003-12-02 3:01 ` IWAMOTO Toshihiro
2003-12-02 6:43 ` Hirokazu Takahashi
2003-12-02 22:26 ` Yasunori Goto
2003-12-03 5:19 Perez-Gonzalez, Inaky
2003-12-03 17:57 Luck, Tony
2003-12-10 0:45 Luck, Tony
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=187360000.1070480461@flay \
--to=mbligh@aracnet.com \
--cc=iwamoto@valinux.co.jp \
--cc=linux-kernel@vger.kernel.org \
--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 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.