[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <456c7367-0656-933b-986d-febdcc5ab98e@virtuozzo.com>
Date: Thu, 16 May 2019 16:02:55 +0300
From: Kirill Tkhai <ktkhai@...tuozzo.com>
To: Jann Horn <jannh@...gle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Dan Williams <dan.j.williams@...el.com>,
Michal Hocko <mhocko@...e.com>, keith.busch@...el.com,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
pasha.tatashin@...cle.com,
Alexander Duyck <alexander.h.duyck@...ux.intel.com>,
ira.weiny@...el.com, Andrey Konovalov <andreyknvl@...gle.com>,
arunks@...eaurora.org, Vlastimil Babka <vbabka@...e.cz>,
Christoph Lameter <cl@...ux.com>,
Rik van Riel <riel@...riel.com>,
Kees Cook <keescook@...omium.org>, hannes@...xchg.org,
npiggin@...il.com,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
shakeelb@...gle.com, Roman Gushchin <guro@...com>,
Andrea Arcangeli <aarcange@...hat.com>,
Hugh Dickins <hughd@...gle.com>,
Jerome Glisse <jglisse@...hat.com>,
Mel Gorman <mgorman@...hsingularity.net>,
daniel.m.jordan@...cle.com,
kernel list <linux-kernel@...r.kernel.org>,
Linux-MM <linux-mm@...ck.org>
Subject: Re: [PATCH RFC 0/5] mm: process_vm_mmap() -- syscall for duplication
a process mapping
Hi, Jann,
On 15.05.2019 21:46, Jann Horn wrote:
> On Wed, May 15, 2019 at 5:11 PM Kirill Tkhai <ktkhai@...tuozzo.com> wrote:
>> This patchset adds a new syscall, which makes possible
>> to clone a mapping from a process to another process.
>> The syscall supplements the functionality provided
>> by process_vm_writev() and process_vm_readv() syscalls,
>> and it may be useful in many situation.
>>
>> For example, it allows to make a zero copy of data,
>> when process_vm_writev() was previously used:
> [...]
>> This syscall may be used for page servers like in example
>> above, for migration (I assume, even virtual machines may
>> want something like this), for zero-copy desiring users
>> of process_vm_writev() and process_vm_readv(), for debug
>> purposes, etc. It requires the same permittions like
>> existing proc_vm_xxx() syscalls have.
>
> Have you considered using userfaultfd instead? userfaultfd has
> interfaces (UFFDIO_COPY and UFFDIO_ZERO) for directly shoving pages
> into the VMAs of other processes. This works without the churn of
> creating and merging VMAs all the time. userfaultfd is the interface
> that was written to support virtual machine migration (and it supports
> live migration, too).
I know about userfaultfd, but it does solve the discussed problem.
It allocates new pages to make UFFDIO_COPY (see mcopy_atomic_pte()),
and it accumulates all the disadvantages, the example from [0/5]
message has.
Kirill
Powered by blists - more mailing lists