linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andi Kleen <andi@firstfloor.org>
Cc: Yasunori Goto <y-goto@jp.fujitsu.com>,
	Gary Hade <garyhade@us.ibm.com>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Badari Pulavarty <pbadari@us.ibm.com>, Mel Gorman <mel@csn.ul.ie>,
	Chris McDermott <lcm@us.ibm.com>,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCH] [RESEND] x86_64: add memory hotremove config option
Date: Mon, 8 Sep 2008 23:48:33 +1000	[thread overview]
Message-ID: <200809082348.34674.nickpiggin@yahoo.com.au> (raw)
In-Reply-To: <20080908113025.GF26079@one.firstfloor.org>

On Monday 08 September 2008 21:30, Andi Kleen wrote:
> > Sorry, by "block", I really mean spin I guess. I mean that the CPU will
> > be forced to stop executing due to the page fault during this sequence:
>
> It's hard for NMIs at least. They cannot execute faults.

Well, just for executing code (and reading RO data), then it shouldn't
matter at all actually if the CPU starts executing from the new page
or the old page, so long as there is a way to quiesce NMIs before freeing
the old page.

So the NMI can run, and read data, but it may have a problem with stores.
At least, some kind of redesign of NMI handlers might be required so that
they can make a note of the pending operation and try to do something
sane in that case. Or, there could be a small region of memory; a page or
two, which does not get migrated and NMIs can write to it. I don't think
you need to go so far as saying the entire kernel image must be non
movable just for NMIs.


> In the end you would need to define a core kernel which
> cannot be remapped and the rest which can and you end up
> with even more micro kernel like mess.

Are there any important NMIs that really can't fit with this?


> > ptep_clear_flush(ptep)         <--- from here
> > set_pte(ptep, newpte)          <--- until here
> >
> > for prot RW, the window also would include the memcpy, however if that
> > adds too much latency for execute/reads, then it can be mapped RO first,
> > then memcpy, then flushed and switched.
> >
> > > Then that would be essentially a hypervisor or micro kernel approach.
> >
> > What would be? Blocking in interrupts? Or non-linear kernel mapping in
>
> Well in general someone remapping all the memory beyond you.
> That's essentially a hypervisor in my book.

I don't see it. It is among one of the things a hypervisor may do.
But anyway, call it what you will.

--
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:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-09-08 13:48 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-05 17:21 Gary Hade
2008-09-05 17:44 ` Ingo Molnar
2008-09-05 18:14   ` Badari Pulavarty
2008-09-05 18:17     ` Ingo Molnar
2008-09-08 21:52       ` [PATCH] Cleanup to make remove_memory() arch neutral Badari Pulavarty
2008-09-09  0:56         ` Andrew Morton
2008-09-09  1:14           ` Randy Dunlap
2008-09-09  1:21           ` Yasunori Goto
2008-09-09 15:12             ` Badari Pulavarty
2008-09-08 21:56       ` [PATCH] x86: add memory hotremove config option Badari Pulavarty
2008-09-05 18:04 ` [PATCH] [RESEND] x86_64: " Andi Kleen
2008-09-05 18:31   ` Badari Pulavarty
2008-09-05 18:54     ` Andi Kleen
2008-09-05 22:34       ` Badari Pulavarty
2008-09-05 19:53   ` Gary Hade
2008-09-05 20:04     ` Andi Kleen
2008-09-05 21:54       ` Gary Hade
2008-09-06  0:01         ` Andi Kleen
2008-09-06  7:06           ` Yasunori Goto
2008-09-06  8:53             ` Andi Kleen
2008-09-08  5:52               ` Nick Piggin
2008-09-08  9:36                 ` Andi Kleen
2008-09-08  9:46                   ` Nick Piggin
2008-09-08 10:30                     ` Andi Kleen
2008-09-08 11:19                       ` Nick Piggin
2008-09-08 11:30                         ` Andi Kleen
2008-09-08 13:48                           ` Nick Piggin [this message]
2008-09-06 14:33             ` Ingo Molnar
2008-09-06 16:00             ` kamezawa.hiroyu
2008-09-06 16:17               ` Ingo Molnar
2008-09-06 16:05             ` kamezawa.hiroyu

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=200809082348.34674.nickpiggin@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=garyhade@us.ibm.com \
    --cc=lcm@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=mingo@elte.hu \
    --cc=pbadari@us.ibm.com \
    --cc=x86@kernel.org \
    --cc=y-goto@jp.fujitsu.com \
    /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