Re: [RFC PATCH] mm: remove zap_page_range and change callers to use zap_vma_page_range

From: Mike Kravetz
Date: Fri Dec 23 2022 - 16:25:58 EST


On 12/23/22 08:27, Christoph Hellwig wrote:
> > unsigned long size = vma->vm_end - vma->vm_start;
> >
> > if (vma_is_special_mapping(vma, vdso_info[VDSO_ABI_AA64].dm))
> > - zap_page_range(vma, vma->vm_start, size);
> > + zap_vma_page_range(vma, vma->vm_start, size);
> > #ifdef CONFIG_COMPAT_VDSO
> > if (vma_is_special_mapping(vma, vdso_info[VDSO_ABI_AA32].dm))
> > - zap_page_range(vma, vma->vm_start, size);
> > + zap_vma_page_range(vma, vma->vm_start, size);
> > #endif
>
> So for something called zap_vma_page_range I'd expect to just pass
> the vma and zap all of it, which this and many other callers want
> anyway.
>
> > +++ b/arch/s390/mm/gmap.c
> > @@ -722,7 +722,7 @@ void gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to)
> > if (is_vm_hugetlb_page(vma))
> > continue;
> > size = min(to - gaddr, PMD_SIZE - (gaddr & ~PMD_MASK));
> > - zap_page_range(vma, vmaddr, size);
> > + zap_vma_page_range(vma, vmaddr, size);
>
> And then just call zap_page_range_single directly for those that
> don't want to zap the entire vma.

Thanks!

This sounds like a good idea and I will incorporate in a new patch.

--
Mike Kravetz