Keith Busch df06b37ffe mm/gup: cache dev_pagemap while pinning pages
Getting pages from ZONE_DEVICE memory needs to check the backing device's
live-ness, which is tracked in the device's dev_pagemap metadata.  This
metadata is stored in a radix tree and looking it up adds measurable
software overhead.

This patch avoids repeating this relatively costly operation when
dev_pagemap is used by caching the last dev_pagemap while getting user
pages.  The gup_benchmark kernel self test reports this reduces time to
get user pages to as low as 1/3 of the previous time.

Link: http://lkml.kernel.org/r/20181012173040.15669-1-keith.busch@intel.com
Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-10-26 16:38:15 -07:00
..
2018-10-26 16:26:35 -07:00
2018-10-22 17:30:06 +01:00
2018-06-07 17:34:36 -07:00
2018-10-26 16:26:33 -07:00
2018-04-11 10:28:39 -07:00
2018-10-26 16:26:33 -07:00
2018-10-26 16:26:33 -07:00
2018-10-26 16:26:33 -07:00
2018-10-26 16:26:33 -07:00
2018-05-11 17:28:45 -07:00
2018-02-06 18:32:48 -08:00