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

From: David Hildenbrand
Date: Mon Sep 30 2019 - 03:52:19 EST


On 27.09.19 23:06, Michael Ellerman wrote:
>
>
> 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.
>

Thanks - sure, take your time. I'll try to play with wiring up balloon
compaction in the meantime.

Cheers!

> cheers
>


--

Thanks,

David / dhildenb