From: Wu Fengguang <fengguang.wu@intel.com>
To: Nick Piggin <npiggin@suse.de>
Cc: Andi Kleen <andi@firstfloor.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: [PATCH] [0/16] HWPOISON: Intro
Date: Wed, 10 Jun 2009 17:45:26 +0800 [thread overview]
Message-ID: <20090610094526.GB32584@localhost> (raw)
In-Reply-To: <20090610091807.GA18582@wotan.suse.de>
On Wed, Jun 10, 2009 at 05:18:07PM +0800, Nick Piggin wrote:
> On Wed, Jun 10, 2009 at 05:07:03PM +0800, Wu Fengguang wrote:
> > On Tue, Jun 09, 2009 at 06:20:14PM +0800, Nick Piggin wrote:
> > > On Wed, Jun 03, 2009 at 08:46:31PM +0200, Andi Kleen wrote:
> > > > Also I thought a bit about the fsync() error scenario. It's really
> > > > a problem that can already happen even without hwpoison, e.g.
> > > > when a page is dropped at the wrong time.
> > >
> > > No, the page will never be "dropped" like that except with
> > > this hwpoison. Errors, sure, might get dropped sometimes
> > > due to implementation bugs, but this is adding semantics that
> > > basically break fsync by-design.
> >
> > You mean the non persistent EIO is undesirable?
> >
> > In the other hand, sticky EIO that can only be explicitly cleared by
> > user can also be annoying. How about auto clearing the EIO bit when
> > the last active user closes the file?
>
> Well the existing EIO semantics IMO are not great, but that
> does not have a big bearing on this new situation. What you
Nod.
> are doing is deliberately throwing away the dirty data, and
> giving EIO back in some cases. (but perhaps not others, a
> subsequent read or write syscall is not going to get EIO is
> it? only fsync).
Right, only fsync/msync and close on nfs will report the error.
write() is normally cached, so obviously it cannot report the later IO
error.
We can make read() IO succeed even if the relevant pages are corrupted
- they can be isolated transparent to user space readers :-)
> So even if we did change existing EIO semantics then the
> memory corruption case of throwing away dirty data is still
> going to be "different" (wrong, I would say).
Oh well.
> > > I really want to resolve the EIO issue because as I said, it
> > > is a user-abi issue and too many of those just get shoved
> > > through only for someone to care about fundamental breakage
> > > after some years.
> >
> > Yup.
> >
> > > You say that SIGKILL is overkill for such pages, but in fact
> > > this is exactly what you do with mapped pages anyway, so why
> > > not with other pages as well? I think it is perfectly fine to
> > > do so (and maybe a new error code can be introduced and that
> > > can be delivered to processes that can handle it rather than
> > > SIGKILL).
> >
> > We can make it a user selectable policy.
>
> Really? Does it need to be? Can the admin sanely make that
> choice?
I just recalled another fact. See below.
> > They are different in that, mapped dirty pages are normally more vital
> > (data structures etc.) for correct execution, while write() operates
> > more often on normal data.
>
> read and write, remember. That might be somewhat true, but
> definitely there are exceptions both ways. How do you
> quantify that or justify it? Just handwaving? Why not make
> it more consistent overall and just do SIGKILL for everyone?
1) under read IO hwpoison pages can be hidden to user space
2) under write IO hwpoison pages are normally committed by pdflush,
so cannot find the impacted application to kill at all.
3) fsync() users can be caught though. But then the application
have the option to check its return code. If it doesn't do it,
it may well don't care. So why kill it?
Think about a multimedia server. Shall we kill the daemon if some IO
page in the movie get corrupted? And a mission critical server?
Obviously the admin will want the right to choose.
> > > Last request: do you have a panic-on-memory-error option?
> > > I think HA systems and ones with properly designed data
> > > integrity at the application layer will much prefer to
> > > halt the system than attempt ad-hoc recovery that does not
> > > always work and might screw things up worse.
> >
> > Good suggestion. We'll consider such an option. But unconditionally
> > panic may be undesirable. For example, a corrupted free page or a
> > clean unmapped file page can be simply isolated - they won't impact
> > anything.
>
> I thought you were worried about introducing races where the
> data can be consumed when doing things such as lock_page and
> wait_on_page_writeback. But if things can definitely be
> discarded with no references or chances of being consumed, yes
> you would not panic for that. But panic for dirty data or
> corrupted kernel memory etc. makes a lot of sense.
OK. We can panic on dirty/writeback pages, and do try_lock to check
for active users :)
Thanks,
Fengguang
--
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>
next prev parent reply other threads:[~2009-06-10 9:44 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-03 18:46 [PATCH] [0/16] HWPOISON: Intro Andi Kleen
2009-06-03 18:46 ` [PATCH] [1/16] HWPOISON: Add page flag for poisoned pages Andi Kleen
2009-06-03 18:46 ` [PATCH] [2/16] HWPOISON: Export some rmap vma locking to outside world Andi Kleen
2009-06-03 18:46 ` [PATCH] [3/16] HWPOISON: Add support for poison swap entries v2 Andi Kleen
2009-06-03 18:46 ` [PATCH] [4/16] HWPOISON: Add new SIGBUS error codes for hardware poison signals Andi Kleen
2009-06-03 18:46 ` [PATCH] [5/16] HWPOISON: Add basic support for poisoned pages in fault handler v3 Andi Kleen
2009-06-03 18:46 ` [PATCH] [6/16] HWPOISON: Add various poison checks in mm/memory.c Andi Kleen
2009-06-04 4:26 ` Wu Fengguang
2009-06-04 5:19 ` Andi Kleen
2009-06-04 11:55 ` Wu Fengguang
2009-06-04 12:52 ` Andi Kleen
2009-06-04 12:50 ` Wu Fengguang
2009-06-04 13:02 ` Andi Kleen
2009-06-04 13:16 ` Wu Fengguang
2009-06-09 10:25 ` Nick Piggin
2009-06-09 12:21 ` Wu Fengguang
2009-06-09 12:35 ` Nick Piggin
2009-06-03 18:46 ` [PATCH] [7/16] HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2 Andi Kleen
2009-06-09 9:54 ` Nick Piggin
2009-06-09 12:34 ` [PATCH] HWPOISON: define VM_FAULT_HWPOISON to 0 when feature is disabled Wu Fengguang
2009-06-03 18:46 ` [PATCH] [8/16] HWPOISON: Use bitmask/action code for try_to_unmap behaviour Andi Kleen
2009-06-09 9:57 ` Nick Piggin
2009-06-10 2:27 ` Wu Fengguang
2009-06-10 6:07 ` Nick Piggin
2009-06-03 18:46 ` [PATCH] [9/16] HWPOISON: Handle hardware poisoned pages in try_to_unmap Andi Kleen
2009-06-04 4:35 ` Wu Fengguang
2009-06-04 5:21 ` Andi Kleen
2009-06-03 18:46 ` [PATCH] [10/16] HWPOISON: Handle poisoned pages in set_page_dirty() Andi Kleen
2009-06-04 0:36 ` Wu Fengguang
2009-06-04 5:27 ` Andi Kleen
2009-06-09 9:59 ` Nick Piggin
2009-06-09 12:51 ` Wu Fengguang
2009-06-03 18:46 ` [PATCH] [11/16] HWPOISON: check and isolate corrupted free pages v2 Andi Kleen
2009-06-09 10:02 ` Nick Piggin
2009-06-09 13:03 ` Wu Fengguang
2009-06-09 13:28 ` Nick Piggin
2009-06-09 13:49 ` Wu Fengguang
2009-06-09 13:55 ` Nick Piggin
2009-06-09 14:56 ` Wu Fengguang
2009-06-09 15:31 ` Nick Piggin
2009-06-03 18:46 ` [PATCH] [12/16] Refactor truncate to allow direct truncating of page Andi Kleen
2009-06-04 4:32 ` Wu Fengguang
2009-06-04 5:20 ` Andi Kleen
2009-06-03 18:46 ` [PATCH] [13/16] HWPOISON: The high level memory error handler in the VM v5 Andi Kleen
2009-06-04 3:24 ` Wu Fengguang
2009-06-04 5:13 ` Andi Kleen
2009-06-04 9:07 ` Wu Fengguang
2009-06-04 9:26 ` Andi Kleen
2009-06-09 9:51 ` Nick Piggin
2009-06-09 11:14 ` Nick Piggin
2009-06-09 10:09 ` Nick Piggin
2009-06-09 16:05 ` Hugh Dickins
2009-06-09 16:35 ` Nick Piggin
2009-06-10 8:38 ` Wu Fengguang
2009-06-10 8:59 ` Nick Piggin
2009-06-10 9:20 ` Wu Fengguang
2009-06-10 11:03 ` Nick Piggin
2009-06-10 12:16 ` Wu Fengguang
2009-06-10 12:36 ` Nick Piggin
2009-06-12 9:58 ` Andi Kleen
2009-06-10 3:10 ` [PATCH] HWPOISON: fix tasklist_lock/anon_vma locking order Wu Fengguang
2009-06-03 18:46 ` [PATCH] [14/16] HWPOISON: FOR TESTING: Enable memory failure code unconditionally Andi Kleen
2009-06-03 18:46 ` [PATCH] [15/16] HWPOISON: Add madvise() based injector for hardware poisoned pages v3 Andi Kleen
2009-06-03 18:46 ` [PATCH] [16/16] HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs Andi Kleen
2009-06-09 10:20 ` [PATCH] [0/16] HWPOISON: Intro Nick Piggin
2009-06-10 9:07 ` Wu Fengguang
2009-06-10 9:18 ` Nick Piggin
2009-06-10 9:45 ` Wu Fengguang [this message]
2009-06-10 11:15 ` Nick Piggin
2009-06-10 12:36 ` Wu Fengguang
2009-06-10 12:47 ` Nick Piggin
-- strict thread matches above, loose matches on Subject: below --
2009-05-29 21:35 Andi Kleen
2009-05-29 21:52 ` Alan Cox
2009-05-29 22:24 ` Andi Kleen
2009-05-27 20:12 Andi Kleen
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=20090610094526.GB32584@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
/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).