qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 14/21] userfaultfd: mcopy_atomic|mfill_zeropage:


From: Pavel Emelyanov
Subject: Re: [Qemu-devel] [PATCH 14/21] userfaultfd: mcopy_atomic|mfill_zeropage: UFFDIO_COPY|UFFDIO_ZEROPAGE preparation
Date: Thu, 5 Mar 2015 21:07:29 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

> +static int mcopy_atomic_pte(struct mm_struct *dst_mm,
> +                         pmd_t *dst_pmd,
> +                         struct vm_area_struct *dst_vma,
> +                         unsigned long dst_addr,
> +                         unsigned long src_addr)
> +{
> +     struct mem_cgroup *memcg;
> +     pte_t _dst_pte, *dst_pte;
> +     spinlock_t *ptl;
> +     struct page *page;
> +     void *page_kaddr;
> +     int ret;
> +
> +     ret = -ENOMEM;
> +     page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, dst_vma, dst_addr);
> +     if (!page)
> +             goto out;

Not a fatal thing, but still quite inconvenient. If there are two tasks that
have anonymous private VMAs that are still not COW-ed from each other, then
it will be impossible to keep the pages shared with userfault. Thus if we do
post-copy memory migration for tasks, then these guys will have their
memory COW-ed.


Thanks,
Pavel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]