Re: [RFC v2 2/8] shmem: convert to use is_folio_hwpoison()

Luis Chamberlain
2023-05-26T17:41:38Z

On Fri, May 26, 2023 at 03:32:54PM +0100, Matthew Wilcox wrote:
> On Fri, May 26, 2023 at 12:55:46AM -0700, Luis Chamberlain wrote:
> > The PageHWPoison() call can be converted over to the respective folio
> > call is_folio_hwpoison(). This introduces no functional changes.
>
> Yes, it very much does!
>
> > @@ -4548,7 +4548,7 @@ struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
> > return &folio->page;
> >
> > page = folio_file_page(folio, index);
> > - if (PageHWPoison(page)) {
> > + if (is_folio_hwpoison(folio)) {
> > folio_put(folio);
>
> Imagine you have an order-9 folio and one of the pages in it gets
> HWPoison. Before, you can read the other 511 pages in the folio.

But before we didn't use high order folios for reads on tmpfs?

But I get the idea.

> After your patch, you can't read any of them. You've effectively
> increased the blast radius of any hwerror, and I don't think that's an
> acceptable change.

I see, thanks! Will fix if we move forward with this.

Luis