lkml.org 
[lkml]   [2020]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RESEND PATCH] mm: fix migrate_vma_setup() src_owner and normal pages
On Tue, Jun 23, 2020 at 10:05:19AM -0700, Ralph Campbell wrote:
>
> On 6/23/20 4:40 AM, Christoph Hellwig wrote:
>> On Mon, Jun 22, 2020 at 03:20:08PM -0700, Ralph Campbell wrote:
>>> The caller of migrate_vma_setup() does not know what type of page is
>>> stored in the CPU's page tables. Pages within the specified range are
>>> free to be swapped out, migrated, or freed until after migrate_vma_setup()
>>> returns. The caller needs to set struct migrate_vma.src_owner in case a
>>> page is a ZONE device private page that the device owns and might want to
>>> migrate. However, the current code skips normal anonymous pages if
>>> src_owner is set, thus preventing those pages from being migrated.
>>> Remove the src_owner check for normal pages since src_owner only applies
>>> to device private pages and allow a range of normal and device private
>>> pages to be migrated.
>>
>> src_owner being set means we want to migrate from device private
>> memory to normal host DRAM. What kind of problem do you see of
>> not touching already present pages in that path?
>>
>
> The problem is that migrate_vma_setup() invalidates the address range so any
> previously migrated pages to device private memory have to be faulted in
> again. By having the PFN of those device private pages in the src array, the
> driver can reinstate the device MMU mappings and avoid the page faults.

Maybe add that to the changelog?

\
 
 \ /
  Last update: 2020-06-24 09:22    [W:0.544 / U:0.344 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site