• A
    mm: free device private pages have zero refcount · ef233450
    Alistair Popple 提交于
    Since 27674ef6 ("mm: remove the extra ZONE_DEVICE struct page
    refcount") device private pages have no longer had an extra reference
    count when the page is in use.  However before handing them back to the
    owning device driver we add an extra reference count such that free pages
    have a reference count of one.
    
    This makes it difficult to tell if a page is free or not because both free
    and in use pages will have a non-zero refcount.  Instead we should return
    pages to the drivers page allocator with a zero reference count.  Kernel
    code can then safely use kernel functions such as get_page_unless_zero().
    
    Link: https://lkml.kernel.org/r/cf70cf6f8c0bdb8aaebdbfb0d790aea4c683c3c6.1664366292.git-series.apopple@nvidia.comSigned-off-by: NAlistair Popple <apopple@nvidia.com>
    Acked-by: NFelix Kuehling <Felix.Kuehling@amd.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Ralph Campbell <rcampbell@nvidia.com>
    Cc: Alex Sierra <alex.sierra@amd.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    ef233450
kfd_migrate.c 27.0 KB