Messages in this thread | | | From | Yang Shi <> | Date | Tue, 2 Nov 2021 09:41:43 -0700 | Subject | Re: [v5 PATCH 6/6] mm: hwpoison: handle non-anonymous THP correctly |
| |
On Mon, Nov 1, 2021 at 8:50 PM Matthew Wilcox <willy@infradead.org> wrote: > > On Mon, Nov 01, 2021 at 01:11:33PM -0700, Yang Shi wrote: > > On Mon, Nov 1, 2021 at 12:38 PM Jue Wang <juew@google.com> wrote: > > > > > > A related bug but whose fix may belong to a separate series: > > > > > > split_huge_page fails when invoked concurrently on the same THP page. > > > > > > It's possible that multiple memory errors on the same THP get consumed > > > by multiple threads and come down to split_huge_page path easily. > > > > Yeah, I think it should be a known problem since the very beginning. > > The THP split requires to pin the page and does check if the refcount > > is expected or not and freezes the refcount if it is expected. So if > > two concurrent paths try to split the same THP, one will fail due to > > the pin from the other path, but the other one will succeed. > > No, they can both fail, if the timing is just right, because they each > have a refcount, so neither will succeed.
Oh, yes, if there is race between unlock_page and put_page.
| |