linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andi Kleen <ak@suse.de>
Cc: Brian Lindahl <Brian.Lindahl@spacedev.com>, linux-mm@kvack.org
Subject: Re: ECC error correction - page isolation
Date: Fri, 02 Jun 2006 11:30:27 +1000	[thread overview]
Message-ID: <447F94B3.7030807@yahoo.com.au> (raw)
In-Reply-To: <200606020146.33703.ak@suse.de>

Andi Kleen wrote:

> If you get machine checks in normal accesses you have to bootstrap
> yourself. This means it has to be handed off to a thread to be able
> to take locks safely. For a scrubber that can be ignored. Doing 
> it from arbitary context requires some tricks.
> 
> Then you have to take a look at the struct page associated with
> the address. If it's a rmap page (you'll need a 2.6 kernel) you
> can walk the rmap chains to find the processes that have 
> the page mapped. You can look at the PTEs and 
> the page bits to see if it's dirty or not. For clean pages
> the page can be just dropped. Otherwise you have
> to kill the process (or send them a signal they could handle) 
> 
> There is no generic function to do the rmap walk right now, but it's not too 
> hard. 

Good summary. I'll just add a couple of things: in recent kernels
we have a page migration facility which should be able to take care
of moving process and pagecache pages for you, without walking rmap
or killing the process (assuming you're talking about correctable
ECC errors).

This may not quite have the right in-kernel API for you use yet, but
it shouldn't be difficult to add.

> 
> If it's kernel space there are several cases:
> - Free page (count == 0). Easy: ignore it.

Also, if you want to isolate the free page, you can allocate it,
and tuck it away in a list somewhere (or just forget about it
completely).

-- 
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com 

--
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:[~2006-06-02  1:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-01 18:06 Brian Lindahl
2006-06-01 23:46 ` Andi Kleen
2006-06-02  1:30   ` Nick Piggin [this message]
2006-06-02  3:10     ` Andi Kleen
2006-06-02  3:15       ` Nick Piggin
2006-06-05 23:36 Brian Lindahl

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=447F94B3.7030807@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=Brian.Lindahl@spacedev.com \
    --cc=ak@suse.de \
    --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