summaryrefslogtreecommitdiffstats
path: root/lib/fdt_addresses.c
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2024-06-20 23:29:35 +0200
committerAndrew Morton <akpm@linux-foundation.org>2024-07-04 04:30:26 +0200
commitee86814b0562f18255b55c5e6a01a022895994cf (patch)
treede40f5622bc4b5640f5e1a77335e7d62043e4775 /lib/fdt_addresses.c
parentmm/migrate: make migrate_misplaced_folio() return 0 on success (diff)
downloadlinux-ee86814b0562f18255b55c5e6a01a022895994cf.tar.xz
linux-ee86814b0562f18255b55c5e6a01a022895994cf.zip
mm/migrate: move NUMA hinting fault folio isolation + checks under PTL
Currently we always take a folio reference even if migration will not even be tried or isolation failed, requiring us to grab+drop an additional reference. Further, we end up calling folio_likely_mapped_shared() while the folio might have already been unmapped, because after we dropped the PTL, that can easily happen. We want to stop touching mapcounts and friends from such context, and only call folio_likely_mapped_shared() while the folio is still mapped: mapcount information is pretty much stale and unreliable otherwise. So let's move checks into numamigrate_isolate_folio(), rename that function to migrate_misplaced_folio_prepare(), and call that function from callsites where we call migrate_misplaced_folio(), but still with the PTL held. We can now stop taking temporary folio references, and really only take a reference if folio isolation succeeded. Doing the folio_likely_mapped_shared() + folio isolation under PT lock is now similar to how we handle MADV_PAGEOUT. While at it, combine the folio_is_file_lru() checks. [david@redhat.com: fix list_del() corruption] Link: https://lkml.kernel.org/r/8f85c31a-e603-4578-bf49-136dae0d4b69@redhat.com Link: https://lkml.kernel.org/r/20240626191129.658CFC32782@smtp.kernel.org Link: https://lkml.kernel.org/r/20240620212935.656243-3-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> Reviewed-by: Zi Yan <ziy@nvidia.com> Tested-by: Donet Tom <donettom@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'lib/fdt_addresses.c')
0 files changed, 0 insertions, 0 deletions