Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp895107yba; Wed, 15 May 2019 11:50:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqwKKd0qEu56MWtb7XzCXT3v4MzRa2IBnFc0r0P6iI5yEyOlr7beBHWx2diHFGXRNCvGVdii X-Received: by 2002:a63:2a89:: with SMTP id q131mr44437258pgq.359.1557946223654; Wed, 15 May 2019 11:50:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557946223; cv=none; d=google.com; s=arc-20160816; b=zW/WYID9lliI/GG2bTOe4slJSu/aOB/1JqZG5qg+mbwFKyJ6EHms+Oai/O83xXi5KS kFQ1/as3jJFQS9RziQ8Ucd0DdO8gcQjk7HuGWPzdhkjYJ/zvwONSgjYEzTdzVueNhST+ JqW9tEYrCEK08FxVRkJOQrZidspHo4JR9LlbGFT1cyf+ccjuF4mKYDP6tjx+tLll241S nx0aHxIiNBkbh3gMR9wf/4UjqfKsK2lo1oI5ELnXF0twhz7di08xbqmQ1kJPLpHAfkLw QH1lx31D2GoV89NtFz4nKcA65pQx9h5tZhpp6FAp/ZZh5GvO0bHlUb2f0fd8kL3bW/On MgeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=eOydKc/WsPS/4UYaw0lrBxS07NNolXo/TbnO9qPBOqA=; b=YYdqE4GdAYe7p2K24YXfduK778BT4rY1WClPkE2Ukr7yCsLzgszqKUZJ/BDphDvtiY bq479Jtqjq66DpYQUmfbm1vTvoERCtfd4FynOZCxy6AzUCPPSBuk95Dn7JiDpnuiebGv KQOeCYjOq9Sk6dQNCw48juXKilhsWp2R9zwt4CHWrM+7qPPaAvZf6xAaE35xB7sRuma+ 5tBaBd+iXgwAy7TTBrSx1J3gzymhSTPE/y2feQ2AhZfuzixI4FEuvzx/j0/qPCsK2NAz IDSGoVzVqO5cYx6g5N66LxoGrgvqbqe0Db13JDdDTnkQGvHNpYFGpuh/lTokPetmjbor pgng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="BB0dY/8F"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d19si2343123pls.221.2019.05.15.11.50.07; Wed, 15 May 2019 11:50:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="BB0dY/8F"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727154AbfEOSrD (ORCPT + 99 others); Wed, 15 May 2019 14:47:03 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:36051 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726392AbfEOSrC (ORCPT ); Wed, 15 May 2019 14:47:02 -0400 Received: by mail-ot1-f68.google.com with SMTP id c3so1019922otr.3 for ; Wed, 15 May 2019 11:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eOydKc/WsPS/4UYaw0lrBxS07NNolXo/TbnO9qPBOqA=; b=BB0dY/8FNByRR2LvoUO/dEX3U9iTwiAuD6aHdfRN6ftwVYsE1IArfACRpd3ZCZsY6K iY3gRSmuhRSwx1CCfGKDmeD+9JrqnQ2zFP92vPEOcQ5dHRWplBxKaMngMkcjtvxNhwfT wL6ijfW2WUojZfxbnR6DoqNlpDaHF5luAmcZLddGp/55FRptVwDp2UodImztRLRvOzPs e5IB+BeCcv9nlxmyfXT8di+B21J2cX9v6Gd5YYKTdpx0iAi8XF81A8RwPD7taUw9keMH LkGSy82DcXdG4vNpjS9JmmDLH853rSylPUd3weZDpNk+E1kXpdMxe0+rTLTqf9jCo9H0 cZ1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eOydKc/WsPS/4UYaw0lrBxS07NNolXo/TbnO9qPBOqA=; b=O5tlK8PBZfbksDlemMZFu9KDR4JOmo/qaE03PhUu99Y2naf4SB968AOfylVUhSCT7A ooBWINDacZNz6r51T5UMJw4vt+bwpoMdGmFQXap3mr/PWccPxieRYAslXoNBsEIlvM05 paNqpjbaCgKQgO/euCwxQ+jIrUgaMCybhJpofIFyGjUESzUNGAfVKvjhW+5i+8BgERjQ 9MeUXn4ayp24bevWxZ1KS5DVvFXdEMG18cQntbN9DWs49o8qCGKY0wWd60VfPEQuNU9i nCHfn+WVN3lmrB9jbHqFiOlUzyfNMnyuwVJEklSsAr0eYggQ5EsoExXynn4AtyGnxWe9 fxDA== X-Gm-Message-State: APjAAAXzSdaEY5/oq9ijf7lTxhwja3Q2lUOGpoq4qYaChdN1wTZlcQSX ENv3CKuPzjszMfkdoo925LNUfCn87b2836MFkDVrNg== X-Received: by 2002:a9d:5f06:: with SMTP id f6mr26196019oti.18.1557946021528; Wed, 15 May 2019 11:47:01 -0700 (PDT) MIME-Version: 1.0 References: <155793276388.13922.18064660723547377633.stgit@localhost.localdomain> In-Reply-To: <155793276388.13922.18064660723547377633.stgit@localhost.localdomain> From: Jann Horn Date: Wed, 15 May 2019 20:46:35 +0200 Message-ID: Subject: Re: [PATCH RFC 0/5] mm: process_vm_mmap() -- syscall for duplication a process mapping To: Kirill Tkhai Cc: Andrew Morton , Dan Williams , Michal Hocko , keith.busch@intel.com, "Kirill A . Shutemov" , pasha.tatashin@oracle.com, Alexander Duyck , ira.weiny@intel.com, Andrey Konovalov , arunks@codeaurora.org, Vlastimil Babka , Christoph Lameter , Rik van Riel , Kees Cook , hannes@cmpxchg.org, npiggin@gmail.com, Mathieu Desnoyers , shakeelb@google.com, Roman Gushchin , Andrea Arcangeli , Hugh Dickins , Jerome Glisse , Mel Gorman , daniel.m.jordan@oracle.com, kernel list , Linux-MM Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 15, 2019 at 5:11 PM Kirill Tkhai 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).