[CRIU] [PATCH v3 2/2] powerpc/mm: Tracking vDSO remap
Ingo Molnar
mingo at kernel.org
Wed Mar 25 11:36:47 PDT 2015
* Ingo Molnar <mingo at kernel.org> wrote:
> > +#define __HAVE_ARCH_REMAP
> > +static inline void arch_remap(struct mm_struct *mm,
> > + unsigned long old_start, unsigned long old_end,
> > + unsigned long new_start, unsigned long new_end)
> > +{
> > + /*
> > + * mremap() doesn't allow moving multiple vmas so we can limit the
> > + * check to old_start == vdso_base.
> > + */
> > + if (old_start == mm->context.vdso_base)
> > + mm->context.vdso_base = new_start;
> > +}
>
> mremap() doesn't allow moving multiple vmas, but it allows the
> movement of multi-page vmas and it also allows partial mremap()s,
> where it will split up a vma.
I.e. mremap() supports the shrinking (and growing) of vmas. In that
case mremap() will unmap the end of the vma and will shrink the
remaining vDSO vma.
Doesn't that result in a non-working vDSO that should zero out
vdso_base?
Thanks,
Ingo
More information about the CRIU
mailing list