mm/mremap_pages: save a few cycles in get_dev_pagemap()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Fri, 2 Sep 2022 16:39:52 +0000 (18:39 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 Sep 2022 03:26:11 +0000 (20:26 -0700)
Use 'percpu_ref_tryget_live_rcu()' instead of 'percpu_ref_tryget_live()'
to save a few cycles when it is known that the rcu lock is already
taken/released.

Link: https://lkml.kernel.org/r/9ef1562a1975371360f3e263856e9f1c5749b656.1662136782.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memremap.c

index 58b20c3c300b871a5aa6028e2a24dd87d79ed277..25029a474d30bc86abe42bf5424027417943e670 100644 (file)
@@ -454,7 +454,7 @@ struct dev_pagemap *get_dev_pagemap(unsigned long pfn,
        /* fall back to slow path lookup */
        rcu_read_lock();
        pgmap = xa_load(&pgmap_array, PHYS_PFN(phys));
-       if (pgmap && !percpu_ref_tryget_live(&pgmap->ref))
+       if (pgmap && !percpu_ref_tryget_live_rcu(&pgmap->ref))
                pgmap = NULL;
        rcu_read_unlock();