Re: [RFC PATCH 05/12] khugepaged: Generalize __collapse_huge_page_isolate()

Dev Jain
2024-12-17T06:42:00Z

On 17/12/24 10:02 am, Matthew Wilcox wrote:
> On Mon, Dec 16, 2024 at 10:20:58PM +0530, Dev Jain wrote:
>> {
>> - struct page *page = NULL;
>> - struct folio *folio = NULL;
>> - pte_t *_pte;
>> + unsigned int max_ptes_shared = khugepaged_max_ptes_shared >> (HPAGE_PMD_ORDER - order);
>> + unsigned int max_ptes_none = khugepaged_max_ptes_none >> (HPAGE_PMD_ORDER - order);
>> int none_or_zero = 0, shared = 0, result = SCAN_FAIL, referenced = 0;
>> + struct folio *folio = NULL;
>> + struct page *page = NULL;
> why are you moving variables around unnecessarily?

In a previous work, I moved code around and David noted to arrange the declarations
in reverse Xmas tree order. I guess (?) that was not spoiling git history, so if
this feels like that, I will revert.

>
>> bool writable = false;
>> + pte_t *_pte;
>>
>> - for (_pte = pte; _pte < pte + HPAGE_PMD_NR;
>> +
>> + for (_pte = pte; _pte < pte + (1UL << order);
> spurious blank line

My bad

>
>
> also you might first want to finish off the page->folio conversion in
> this function first; we have a vm_normal_folio() now.

I did not add any code before we derive the folio...I'm sorry, I don't get what you mean...