From: Miaohe Lin <linmiaohe@huawei.com>
To: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: <linux-mm@kvack.org>, Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] mm/memory-failure: Stop setting the folio error flag
Date: Mon, 3 Jun 2024 10:19:35 +0800 [thread overview]
Message-ID: <fe07a112-7a05-ea72-d1dd-1e41d8fa1d20@huawei.com> (raw)
In-Reply-To: <20240531032938.2712870-1-willy@infradead.org>
On 2024/5/31 11:29, Matthew Wilcox (Oracle) wrote:
> Nobody checks the error flag any more, so setting it accomplishes
> nothing. Remove the obsolete parts of this comment; it hasn't
> been true since errseq_t was used to track writeback errors in 2017.
>
> Cc: Miaohe Lin <linmiaohe@huawei.com>
> Cc: linux-mm@kvack.org
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: Miaohe Lin <linmiaohe@huawei.com>
Thanks.
.
> ---
> mm/memory-failure.c | 29 -----------------------------
> 1 file changed, 29 deletions(-)
>
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index ac030061eda0..78fdf5ee8421 100644
> --- a/mm/memory-failure.c
> +++ b/mm/memory-failure.c
> @@ -1112,7 +1112,6 @@ static int me_pagecache_dirty(struct page_state *ps, struct page *p)
> struct folio *folio = page_folio(p);
> struct address_space *mapping = folio_mapping(folio);
>
> - SetPageError(p);
> /* TBD: print more information about the file. */
> if (mapping) {
> /*
> @@ -1120,34 +1119,6 @@ static int me_pagecache_dirty(struct page_state *ps, struct page *p)
> * who check the mapping.
> * This way the application knows that something went
> * wrong with its dirty file data.
> - *
> - * There's one open issue:
> - *
> - * The EIO will be only reported on the next IO
> - * operation and then cleared through the IO map.
> - * Normally Linux has two mechanisms to pass IO error
> - * first through the AS_EIO flag in the address space
> - * and then through the PageError flag in the page.
> - * Since we drop pages on memory failure handling the
> - * only mechanism open to use is through AS_AIO.
> - *
> - * This has the disadvantage that it gets cleared on
> - * the first operation that returns an error, while
> - * the PageError bit is more sticky and only cleared
> - * when the page is reread or dropped. If an
> - * application assumes it will always get error on
> - * fsync, but does other operations on the fd before
> - * and the page is dropped between then the error
> - * will not be properly reported.
> - *
> - * This can already happen even without hwpoisoned
> - * pages: first on metadata IO errors (which only
> - * report through AS_EIO) or when the page is dropped
> - * at the wrong time.
> - *
> - * So right now we assume that the application DTRT on
> - * the first EIO, but we're not worse than other parts
> - * of the kernel.
> */
> mapping_set_error(mapping, -EIO);
> }
>
next prev parent reply other threads:[~2024-06-03 2:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-31 3:29 [PATCH] mm/memory-failure: Stop setting the folio error flag Matthew Wilcox (Oracle)
2024-06-03 2:19 ` Miaohe Lin [this message]
2024-06-03 3:47 ` Oscar Salvador
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=fe07a112-7a05-ea72-d1dd-1e41d8fa1d20@huawei.com \
--to=linmiaohe@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=willy@infradead.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.