On Wed, Jun 24, 2020 at 12:17:42PM -0700, Andrew Morton wrote: > On Wed, 24 Jun 2020 15:01:22 +0000 nao.horiguchi@xxxxxxxxx wrote: > > > I rebased soft-offline rework patchset [1][2] onto the latest mmotm. The > > rebasing required some non-trivial changes to adjust, but mainly that was > > straightforward. I confirmed that the reported problem doesn't reproduce on > > compaction after soft offline. For more precise description of the problem > > and the motivation of this patchset, please see [2]. > > > > I think that the following two patches in v2 are better to be done with > > separate work of hard-offline rework, so it's not included in this series. > > > > - mm,hwpoison: Take pages off the buddy when hard-offlining > > - mm/hwpoison-inject: Rip off duplicated checks > > > > These two are not directly related to the reported problem, so they seems > > not urgent. And the first one breaks num_poisoned_pages counting in some > > testcases, and The second patch needs more consideration about commented point. > > > > It would be nice to have some sort of overview of the patch series in > this [0/n] email. > > > [1] v1: https://lore.kernel.org/linux-mm/1541746035-13408-1-git-send-email-n-horiguchi@xxxxxxxxxxxxx/ > > [2] v2: https://lore.kernel.org/linux-mm/20191017142123.24245-1-osalvador@xxxxxxx/ > > The above have such, but are they up to date? The description of the problem doesn't change, but there're some new patches and some patches are postponed, so I should've added an overview of this series: - patch 1, 2 are cleanups. - patch 3, 4, 5 change the precondition when calling memory_failure(). Previously we sometimes call it with holding refcount of the target page and somtimes call without holding it, and we passed a flag of whether refcount was taken out of memory_failure(). It was confusing and caused code more complex than needed. - patch 6-10 are cleanups. - patch 11 introduces new logic to remove the error page from buddy allocator, which is also applied to the path of soft-offling in-use pages in patch 12. - patch 13 is basically a refactoring but I added some adjustment to make sure that the freed page is surely sent back to buddy instead of being kept in pcplist, which is based on discussion in v2. - patch 14 fixes the inconsistency of return values between injection interfaces. - patch 15 is a new patch to complement missing code found in code review for previous version. Core change is in patch 11 and 12, and the others are kind of cleanup/refactoring. Thanks, Naoya Horiguchi