Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp5879645ioo; Wed, 1 Jun 2022 14:50:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzv+Dm/U2/bZvkR3E7ymr5SkjAsU+vl1eiBxZXP3I5yrT9AsWip8VJ4CR7qf1Iybna8PilM X-Received: by 2002:a17:90b:4c07:b0:1df:755e:e0df with SMTP id na7-20020a17090b4c0700b001df755ee0dfmr1531203pjb.244.1654120209926; Wed, 01 Jun 2022 14:50:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654120209; cv=none; d=google.com; s=arc-20160816; b=nb/uLnelj3UV6t+QMMjOdaEDYVJYejqviuSoSp+C3AruuF1AILoy03QW5QfB6yx4zp XBdx1XLYGJZNnkPjexSIv+1XPeuL6GCrweiCceC4zx82r0un9Ql2hmo093w/EUwTsGI0 n7lv3jt71y3E5cOFGToKObpm5Ec5sFq/b0G20RYgydOya3b068cWeZg485rexvbBLMdw jvhPsSLdrTedDdJI/trJi1qWyQacUMRmeBO2PhOkKi+iPcgREC9ST8hFLV8PCNm7XoZm M2U0L+Ffg7tkGDFcEa88T6BzqWash3pks+U/3lCB+olbTaCPXuz9y+fTyY4UvOgdmYJB eclw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=eoJzH/fmzFvACjVcvXMxe/8zwQW+mPMqokRQV/WBtz0=; b=1KIehAkQfTtBtJxQzKmhHdrUOT1Z3kw5ZbJJtnPuECKEUymMrSfP/zAREyJLjpUaf3 b6RLU+4FKv4jhilnOhFg0+/OtF4C32RKOQR4pMkeCyDdSH7mSfQoi0h1LKkf3IROF6lS y5Rpg+dXQclYrjpRZifn3Gt4m3nSCyORL3p359uM62+yrEEvbZzYbYGNoAnYtwkWncPt 53gwrp21sd0y1YssylV7eFeQRllAbK0MldRmXeC7eSES9Sa83LQ4UIRVIfvArPVUoyll OyAraKe4KZHVVFE4nmfzOpgeaoer4X8GJQZ5IFpcHt01taxtdfAuBFTeJqK16OaNuUNB o2bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=I4e1nXx9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id c9-20020a056a00248900b00518ce2fd7desi3896589pfv.81.2022.06.01.14.50.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jun 2022 14:50:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=I4e1nXx9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 6D3065FF0F; Wed, 1 Jun 2022 14:11:33 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231394AbiFAVKn (ORCPT + 99 others); Wed, 1 Jun 2022 17:10:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231183AbiFAVJ5 (ORCPT ); Wed, 1 Jun 2022 17:09:57 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C8EAB1181D for ; Wed, 1 Jun 2022 14:09:55 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-2fb7bf98f1aso25850957b3.5 for ; Wed, 01 Jun 2022 14:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=eoJzH/fmzFvACjVcvXMxe/8zwQW+mPMqokRQV/WBtz0=; b=I4e1nXx9RXm7sY0HmftB536BjJPeFCp3BQy7eEqPUaXM9dJP5nxl/iX3HWy6ta8/po aSntDJ87OZUR0FtlBzM4E3l1cBvHdn/FHX8nlxwNJxOL22ZrI6SfY23BjXbX1q0kvav3 xk9J2O1V7l+QEjeclGH2UOIg8sra7op/dGXQsjM8JyhYNakRkeSH7KTyXd9giDnge1CU rclyMxF2ETuh7Oo61zDK5B5zsqJeq7XreghYR6/8bhFkca1C+bklF8YWphFZIi+G7CMp yTvTw+o1tJwJeoGsNXDRp2XEs1aWOU+sdJ5VsjYnISHAHHVhMPpnN/p3IytQmXHpnaFA NcGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=eoJzH/fmzFvACjVcvXMxe/8zwQW+mPMqokRQV/WBtz0=; b=QceMYsjpsVUBgXMBBMTZVWsxf7kP3MKApXctCgDgl3tyuEP4z7lvus77aP/aYgczru 8wwk21B5ybry5xGsEEpNFihrqzA9mgBBmhySjI6pRzoil2OsF0+aiE9Szh7RKHiNhDLw jxtL7CRub3eutYCaq6AhWkF0uNXeAJQyye9KaOT6pnFTBwbzRKyxerV/HhyAkqdNSO0B gR+yqE0S2A2TjXe7xnMT4yvq1j0wCHBzWGxIoADK1whGXGC8DTI8RuaBqPwiQyf0hxsK ANmy8P7kR5YhFVYHJHqoOyzlkUhXjFylxEWC2jbxLIiyO9cQvI+/zzVt0fLj+M9M4Gs9 PTUw== X-Gm-Message-State: AOAM532JcQE4h1yJg65Ee4iHxdiDge8KN5ty21s4NL4MoIBoL3TC9cXm IAPl7ZanIEyXYAMT+f5x7bEpLK+ng+coYo2v8Dc/ X-Received: from ajr0.svl.corp.google.com ([2620:15c:2cd:203:aaec:e358:9f0e:2b26]) (user=axelrasmussen job=sendgmr) by 2002:a81:4a02:0:b0:2fe:d277:2b47 with SMTP id x2-20020a814a02000000b002fed2772b47mr1708755ywa.169.1654117794963; Wed, 01 Jun 2022 14:09:54 -0700 (PDT) Date: Wed, 1 Jun 2022 14:09:45 -0700 Message-Id: <20220601210951.3916598-1-axelrasmussen@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.36.1.255.ge46751e96f-goog Subject: [PATCH v3 0/6] userfaultfd: add /dev/userfaultfd for fine grained access control From: Axel Rasmussen To: Alexander Viro , Andrew Morton , Charan Teja Reddy , Dave Hansen , "Dmitry V . Levin" , Gleb Fotengauer-Malinovskiy , Hugh Dickins , Jan Kara , Jonathan Corbet , Mel Gorman , Mike Kravetz , Mike Rapoport , Nadav Amit , Peter Xu , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , zhangyi Cc: Axel Rasmussen , linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series is based on linux-next/akpm-base. The series is split up like so: - Patch 1 is a simple fixup which we should take in any case (even by itself). - Patches 2-4 add the feature, basic support for it to the selftest, and docs. - Patches 5-6 make the selftest configurable, so you can test one or the other instead of always both. If we decide this is overcomplicated, we could just drop these two patches and take the rest of the series. Changelog: v2->v3: - Rebased onto linux-next/akpm-base, in order to be based on top of the run_vmtests.sh refactor which was merged previously. - Picked up some Reviewed-by's. - Fixed ioctl definition (_IO instead of _IOWR), and stopped using compat_ptr_ioctl since it is unneeded for ioctls which don't take a pointer. - Removed the "handle_kernel_faults" bool, simplifying the code. The result is logically equivalent, but simpler. - Fixed userfaultfd selftest so it returns KSFT_SKIP appropriately. - Reworded documentation per Shuah's feedback on v2. - Improved example usage for userfaultfd selftest. v1->v2: - Add documentation update. - Test *both* userfaultfd(2) and /dev/userfaultfd via the selftest. Axel Rasmussen (6): selftests: vm: add hugetlb_shared userfaultfd test to run_vmtests.sh userfaultfd: add /dev/userfaultfd for fine grained access control userfaultfd: selftests: modify selftest to use /dev/userfaultfd userfaultfd: update documentation to describe /dev/userfaultfd userfaultfd: selftests: make /dev/userfaultfd testing configurable selftests: vm: add /dev/userfaultfd test cases to run_vmtests.sh Documentation/admin-guide/mm/userfaultfd.rst | 40 ++++++++++- Documentation/admin-guide/sysctl/vm.rst | 3 + fs/userfaultfd.c | 76 ++++++++++++++++---- include/uapi/linux/userfaultfd.h | 4 ++ tools/testing/selftests/vm/run_vmtests.sh | 11 ++- tools/testing/selftests/vm/userfaultfd.c | 66 ++++++++++++++--- 6 files changed, 172 insertions(+), 28 deletions(-) -- 2.36.1.255.ge46751e96f-goog