Re: [PATCH 12/25] memremap: add a migrate_to_ram method to struct dev_pagemap_ops

From: Jason Gunthorpe
Date: Thu Jun 27 2019 - 12:29:51 EST


On Wed, Jun 26, 2019 at 02:27:11PM +0200, Christoph Hellwig wrote:
> This replaces the hacky ->fault callback, which is currently directly
> called from common code through a hmm specific data structure as an
> exercise in layering violations.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Reviewed-by: Ralph Campbell <rcampbell@xxxxxxxxxx>
> ---
> include/linux/hmm.h | 6 ------
> include/linux/memremap.h | 6 ++++++
> include/linux/swapops.h | 15 ---------------
> kernel/memremap.c | 35 ++++-------------------------------
> mm/hmm.c | 13 +++++--------
> mm/memory.c | 9 ++-------
> 6 files changed, 17 insertions(+), 67 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx>

I'ver heard there are some other use models for fault() here beyond
migrate to ram, but we can rename it if we ever see them.

> +static vm_fault_t hmm_devmem_migrate_to_ram(struct vm_fault *vmf)
> {
> - struct hmm_devmem *devmem = page->pgmap->data;
> + struct hmm_devmem *devmem = vmf->page->pgmap->data;
>
> - return devmem->ops->fault(devmem, vma, addr, page, flags, pmdp);
> + return devmem->ops->fault(devmem, vmf->vma, vmf->address, vmf->page,
> + vmf->flags, vmf->pmd);
> }

Next cycle we should probably rename this fault to migrate_to_ram as
well and pass in the vmf..

Jason