Re: [PATCH v1] powerpc/pseries: CMM: Drop page array

From: Michael Ellerman
Date: Fri Sep 27 2019 - 17:06:45 EST




On 27 September 2019 9:19:49 pm AEST, David Hildenbrand <david@xxxxxxxxxx> wrote:
>On 25.09.19 09:37, David Hildenbrand wrote:
>> On 10.09.19 18:39, David Hildenbrand wrote:
>>> We can simply store the pages in a list (page->lru), no need for a
>>> separate data structure (+ complicated handling). This is how most
>>> other balloon drivers store allocated pages without additional
>tracking
>>> data.
>>>
>>> For the notifiers, use page_to_pfn() to check if a page is in the
>>> applicable range. plpar_page_set_loaned()/plpar_page_set_active()
>were
>>> called with __pa(page_address()) for now, I assume we can simply
>switch
>>> to page_to_phys() here. The pfn_to_kaddr() handling is now mostly
>gone.
>>>
>>> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
>>> Cc: Paul Mackerras <paulus@xxxxxxxxx>
>>> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
>>> Cc: Arun KS <arunks@xxxxxxxxxxxxxx>
>>> Cc: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
>>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>>> Cc: Vlastimil Babka <vbabka@xxxxxxx>
>>> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
>>> ---
>>>
>>> Only compile-tested. I hope the page_to_phys() thingy is correct and
>I
>>> didn't mess up something else / ignoring something important why the
>array
>>> is needed.
>>>
>>> I stumbled over this while looking at how the memory isolation
>notifier is
>>> used - and wondered why the additional array is necessary. Also, I
>think
>>> by switching to the generic balloon compaction mechanism, we could
>get
>>> rid of the memory hotplug notifier and the memory isolation notifier
>in
>>> this code, as the migration capability of the inflated pages is the
>real
>>> requirement:
>>> commit 14b8a76b9d53346f2871bf419da2aaf219940c50
>>> Author: Robert Jennings <rcj@xxxxxxxxxxxxxxxxxx>
>>> Date: Thu Dec 17 14:44:52 2009 +0000
>>>
>>> powerpc: Make the CMM memory hotplug aware
>>>
>>> The Collaborative Memory Manager (CMM) module allocates
>individual pages
>>> over time that are not migratable. On a long running system
>this can
>>> severely impact the ability to find enough pages to support a
>hotplug
>>> memory remove operation.
>>> [...]
>>>
>>> Thoughts?
>>
>> Ping, is still feature still used at all?
>>
>> If nobody can test, any advise on which HW I need and how to trigger
>it?
>>
>
>So ... if CMM is no longer alive I propose ripping it out completely.
>Does anybody know if this feature is still getting used? Getting rid of
>the memory isolation notifier sounds desirable - either by scrapping
>CMM
>or by properly wiring up balloon compaction.

It's still used AFAIK, but the people who wrote the code have left IBM, and I'm on leave.

I'll be back in a week or so and will try and track down how to test it then.

cheers
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.