[PATCH v2 0/2] mm, memory_hotplug: redefine memory offline retry logic

From: Michal Hocko
Date: Mon Sep 18 2017 - 03:10:18 EST

this has been previously sent http://lkml.kernel.org/r/20170904082148.23131-1-mhocko@xxxxxxxxxx
No fundamental objections have been raised. There were some questions about
potential permanent migration failures but those are deemed unlikely and
not really problematic because the context is interruptible. I have tried
to clarify the wording to be more clear.

original changelog:
While testing memory hotplug on a large 4TB machine we have noticed that
memory offlining is just too eager to fail. The primary reason is that
the retry logic is just too easy to give up. We have 4 ways out of the
- we have a permanent failure (isolation or memory notifiers fail,
or hugetlb pages cannot be dropped)
- userspace sends a signal
- a hardcoded 120s timeout expires
- page migration fails 5 times
This is way too convoluted and it doesn't scale very well. We have seen both
temporary migration failures as well as 120s being triggered. After removing
those restrictions we were able to pass stress testing during memory hot
remove without any other negative side effects observed. Therefore I suggest
dropping both hard coded policies. I couldn't have found any specific reason
for them in the changelog. I neither didn't get any response [1] from Kamezawa.
If we need some upper bound - e.g. timeout based - then we should have a proper
and user defined policy for that. In any case there should be a clear use case
when introducing it.

Any comments, objections?

Michal Hocko (2):
mm, memory_hotplug: do not fail offlining too early
mm, memory_hotplug: remove timeout from __offline_memory

mm/memory_hotplug.c | 48 ++++++++++++------------------------------------
1 file changed, 12 insertions(+), 36 deletions(-)

[1] http://lkml.kernel.org/r/20170828094316.GF17097@xxxxxxxxxxxxxx