Re: [PATCH v2 6/9] mm: free user PTE page table pages
From: Qi Zheng <hidden>
Date: 2021-09-02 06:54:10
Also in:
linux-mm, lkml
From: Qi Zheng <hidden>
Date: 2021-09-02 06:54:10
Also in:
linux-mm, lkml
On 2021/9/1 PM11:32, Jason Gunthorpe wrote:
quoted
quoted
Also, I don't really understand how this scheme works with get_user_pages_fast.With the RCU change it in #8 it should work just fine, because RCU synchronize has to wait either until all other CPUs have left the RCU read section, or re-enabled interrupts.So at this point in the series fast gup is broken, that does mean the series presentation really needs to be reworked. The better presentation is to add the API changes, with a no-functional-difference implementation, push the new API in well split patches to all the consumption sites, then change the API to have the new semantics. RCU and refcount to free the page levels seems like a reasonable approach, but I have to say I haven't thought it through fully - are all the contexts that have the pte deref safe to do call_rcu?
See Documentation/RCU/rcubarrier.rst: "Since call_rcu() never blocks, this code can safely be used from within IRQ context." So I think call_rcu() can be safely run in any context. Thinks, Qi
Jason