[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHbLzkogrubD_rPH7zf1T454r-BsxL951YH=rGAfNqPZJSCGow@mail.gmail.com>
Date: Wed, 16 Oct 2024 10:33:41 -0700
From: Yang Shi <shy828301@...il.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: Baolin Wang <baolin.wang@...ux.alibaba.com>, akpm@...ux-foundation.org,
hughd@...gle.com, david@...hat.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] mm: shmem: improve the tmpfs large folio read performance
On Wed, Oct 16, 2024 at 8:38 AM Matthew Wilcox <willy@...radead.org> wrote:
>
> On Wed, Oct 16, 2024 at 06:09:30PM +0800, Baolin Wang wrote:
> > @@ -3128,8 +3127,9 @@ static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
> > if (folio) {
> > folio_unlock(folio);
> >
> > - page = folio_file_page(folio, index);
> > - if (PageHWPoison(page)) {
> > + if (folio_test_hwpoison(folio) ||
> > + (folio_test_large(folio) &&
> > + folio_test_has_hwpoisoned(folio))) {
>
> Hm, so if we have hwpoison set on one page in a folio, we now can't read
> bytes from any page in the folio? That seems like we've made a bad
> situation worse.
Yeah, I agree. I think we can fallback to page copy if
folio_test_has_hwpoisoned is true. The PG_hwpoison flag is per page.
The folio_test_has_hwpoisoned is kept set if the folio split is failed
in memory failure handler.
>
>
Powered by blists - more mailing lists