[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2d757ddb-cd20-4695-a978-ea413881d9b2@redhat.com>
Date: Fri, 16 Aug 2024 12:03:25 +0200
From: David Hildenbrand <david@...hat.com>
To: Qi Zheng <zhengqi.arch@...edance.com>
Cc: hughd@...gle.com, willy@...radead.org, mgorman@...e.de,
muchun.song@...ux.dev, vbabka@...nel.org, akpm@...ux-foundation.org,
zokeefe@...gle.com, rientjes@...gle.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH v2 4/7] mm: pgtable: try to reclaim empty PTE pages in
zap_page_range_single()
>>
>> (b) if we didn't have to drop the PTL, we can remove the page table
>> without even re-verifying whether the entries are pte_none(). We
>
> If we want to remove the PTE page, we must hold the pmd lock (for
> clearing pmd entry). To prevent ABBA deadlock, we must first release the
> pte lock and then re-acquire the pmd lock + pte lock. Right? If so, then
> rechecking pte_none() is unavoidable. Unless we hold the pmd lock + pte
> lock in advance to execute the original code loop.
Try-locking the PMD should work, and succeed in many cases, right? And
if that fails, we could fallback to what you describe.
--
Cheers,
David / dhildenb
Powered by blists - more mailing lists