[PATCH v3 hmm 05/11] hmm: use mmu_notifier_get/put for 'struct hmm'

Ralph Campbell rcampbell at nvidia.com
Wed Aug 14 21:51:02 UTC 2019


On 8/6/19 4:15 PM, Jason Gunthorpe wrote:
> From: Jason Gunthorpe <jgg at mellanox.com>
> 
> This is a significant simplification, it eliminates all the remaining
> 'hmm' stuff in mm_struct, eliminates krefing along the critical notifier
> paths, and takes away all the ugly locking and abuse of page_table_lock.
> 
> mmu_notifier_get() provides the single struct hmm per struct mm which
> eliminates mm->hmm.
> 
> It also directly guarantees that no mmu_notifier op callback is callable
> while concurrent free is possible, this eliminates all the krefs inside
> the mmu_notifier callbacks.
> 
> The remaining krefs in the range code were overly cautious, drivers are
> already not permitted to free the mirror while a range exists.
> 
> Signed-off-by: Jason Gunthorpe <jgg at mellanox.com>

Looks good.
Reviewed-by: Ralph Campbell <rcampbell at nvidia.com>


More information about the dri-devel mailing list