From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C467C77B6E for ; Wed, 12 Apr 2023 18:25:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9A406B0074; Wed, 12 Apr 2023 14:25:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E4AFD900003; Wed, 12 Apr 2023 14:25:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D132B900002; Wed, 12 Apr 2023 14:25:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C10096B0074 for ; Wed, 12 Apr 2023 14:25:45 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 92BBB14010B for ; Wed, 12 Apr 2023 18:25:45 +0000 (UTC) X-FDA: 80673567450.17.D88D29B Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) by imf18.hostedemail.com (Postfix) with ESMTP id AD2641C0011 for ; Wed, 12 Apr 2023 18:25:42 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=WB9KQ7rd; spf=pass (imf18.hostedemail.com: domain of axelrasmussen@google.com designates 209.85.167.47 as permitted sender) smtp.mailfrom=axelrasmussen@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681323942; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=b339/5ZxfKcTpER9IRdlqYifRrMLLvI9VSJje+nkiLk=; b=uxu+8uMV5pY60DPNyNTK+0S7WwGwn+wiiCAAmtBAo8xGFWGuSEycWfKUmYA+yX/Rrgoff6 BKuh2RtZPxevx0gFP7PtIEOIMu6EH2r4T6h+u9QfvC8o9rPKS7cxTXGGNtSuk1Up6oCwOO ZRbpRkx9g/znMZYI+15kcNzpx3JsStA= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=WB9KQ7rd; spf=pass (imf18.hostedemail.com: domain of axelrasmussen@google.com designates 209.85.167.47 as permitted sender) smtp.mailfrom=axelrasmussen@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681323942; a=rsa-sha256; cv=none; b=ganTY/b7LamaOTrSTUMJe4bQjLP50RjkDZVxssUQQvVG+FkicFD1KEtyT6/XTtDP7wcolb fyqEP7uYD1IxqMpo0wADofYtWAWEunPfOOAbkiJkNwGqYeOmQgr3UlMYcOlZFIAXZ/liQU 3/O30Xa1RTGqJn+LRJYsVGbPJ1lTxkk= Received: by mail-lf1-f47.google.com with SMTP id e11so15825290lfc.10 for ; Wed, 12 Apr 2023 11:25:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1681323941; x=1683915941; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=b339/5ZxfKcTpER9IRdlqYifRrMLLvI9VSJje+nkiLk=; b=WB9KQ7rdQ+2uJp7ZRAhDUOFkCdxjzzvpr99yVRFeWvINMcprO6LDsP0Cpg3FeL36ou 5UAuUD8tldxZkwu5hWMQ4R59a1mLVZRpkmUED+tqLiFNyzt+EyL1LUpcBS8yxTApb6rr CeZGo4VYRvuBGMyetr7EWaTKsM+dZ19SIkIYXuRsdsCjG/jqGIAl66TfevNUtVNlDjB7 MamDF5YZP4W+RTGsf9Oo9nrBXNdHppkpyPCyPaXcHgEd/+3DyaKUixAXEp8sKiFRGtT/ 2hyEaudZkZ2cnm2L2JZKXy11QqgI8bMt+/z+bam3QFxgXmVucbjyMVmwe1rWRz5FZddU +kxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681323941; x=1683915941; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=b339/5ZxfKcTpER9IRdlqYifRrMLLvI9VSJje+nkiLk=; b=lLDcx4ffhj/UNwVU4AaFoZKP1YhVjbjZxSMG7ubpp2+/xeZj+J/5TWxDSdJ3yfOJUu h4tLENNrJoxbMgSYDSrkUB9CCD6+635mk6YpGV0rggNvuUA7bLBxL/nghMxn9NDc3q9n fdO7+IAzeD8oNDsmYonl6Td/NL0E6OoxS5xoVC26502VgCyDIvvIfb/HP0MMxWod2cuN SPdML8eWNGop4Dq2TFKPXbl4FxuIPGIcS0bA5Bd6Ozx1zZwRKrGIWnPq/DKPCpy/KL8g EYg1+Oxs/M3orNvPxJl3GDeaTmmZB4GGwshIFJ38w20ZhMnv/j7P8jlwRzo6mvt2iaAc jn4w== X-Gm-Message-State: AAQBX9eYr+vyoaXoQ4Ct92PCmYIvUDiA1QRk8OwJ17ezdZe9s2uRpJY8 YaNp0QQlsOUMopWsuIlflRKI9v0CmAblWrGUQA9F+A== X-Google-Smtp-Source: AKy350YPKgDj3o6RlYzRteVpCyjpy6r6P/yCXCigjfjxtrlbK9ZFxeUbYAW/a2Ymo82zPWiDUMXHohSAFqwF998L3ng= X-Received: by 2002:ac2:530f:0:b0:4ec:8c1e:c817 with SMTP id c15-20020ac2530f000000b004ec8c1ec817mr3029848lfh.10.1681323940044; Wed, 12 Apr 2023 11:25:40 -0700 (PDT) MIME-Version: 1.0 References: <20230412163922.327282-1-peterx@redhat.com> <20230412164254.328335-1-peterx@redhat.com> In-Reply-To: <20230412164254.328335-1-peterx@redhat.com> From: Axel Rasmussen Date: Wed, 12 Apr 2023 11:25:03 -0700 Message-ID: Subject: Re: [PATCH v2 15/31] selftests/mm: uffd_open_{dev|sys}() To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Andrea Arcangeli , Mike Kravetz , Nadav Amit , David Hildenbrand , Mike Rapoport , Leonardo Bras Soares Passos , Mike Rapoport Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: AD2641C0011 X-Stat-Signature: 781ag4f6wp9ut1wjrprud4jm3pduqbwp X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1681323942-684813 X-HE-Meta: U2FsdGVkX18s96E7N2uI3TKjDA83yApsr5n1uZsE7Q2FRlM6CBpidUEnJWMggcw1evSGlrm7M7BWH/5WGg5sGez1DIL2Ex8gyJan93WHPEVJyq7+3vivizdYFQSSyuZfNDJO5oVNxvNZvxWu+sAh01gYFiUCuMgm/hf/K4PqKPwcjffi0QFNLxOR5TF1t6ZIkpWdiTTBTCd9qgdp9dHh+tmaGtWo/qdMDclTMwVXYSWx+YzF/9KY2Brf/90agegvEa5vDstbbbtwFsPUD4WR+fccFMmZ7N3JWurN83z9x5WqyyHAdbxsS+ZyIpiIzsABAkcOUpkqTmIhSagF+BD4VbBFG4PB6fb2BPMn2FWo2nEJbCIzcT58jm26d48iLChUgcZYTDd5umyY3NuiMY/LXXOhm6ndDDSmVy9ZhiYrFJjDAXXDotm4b8PfKTY4GxSlkNIU+4F8sb0rVq2vbEC/0x9QL/HJXgXw6870w9Uro9sQzLqI0mvpPii7zY10yHEVQErBwkGoi67nj7PjcXE7HWCf0HJ2gcPU5anHflm4Ak2PQ3C6iLoDYvwcECDlOVHGWzNrprt7gfWEyZWauHbFUWD4NdNOj4Mkpv4CdxkAt2aboKCZk8/KAuoFLUlZO/tsb0SoMYKv0lxmO+b3cPN2OawKjb3dpqNXJi2D1lbde3mkTmDl9XDQ/bEy8otG7VSaOaRGCFrUxpnVfru7Zjv5X0NM9McVvl6RHJk432yYr2VzVkCSQovMpLIBuW4wWnXj4Xko4wTaVMLf9wnDkuno4S+B4oATwKxihiotkkvl5uaOBrJauxjHA0floHJymBxrihhgWqjYZGyRuaxBzv1xF/PcIc7kvHxI8Ga3I0qLGqRQyBPR02dnJWuqywXtytRaUZ36/a8/CRfMbJBXitob6KDJPdyoMZLH5sU2N4nBr2692GHHJeAmFAPYEYt5vvebGhrqdcbhPDOhm+3nwtX TI1R0w2u jVGkZBhu/MtoZ7KZLlpO56pVaqP3EbkJ8SWZ9tHo2yJkfNIPGUEXCXzS/UWUDXYqSTZdZA/FDjCT24rTtUsVeRaGigcGmtKuPs3L63iknFGbaVUIxJASro9NNpLWizI9D4ldyj7p8IHrEwHnXLRuEXGW76TiAc4j3jF8DsydFL9JUEnYEMkIuT0RbF8Sm5l/7h/y6zdM4Qd/dol18kdJsUVu7TT8+uNFiNfMlJUbKDxXK1NOcG6GAiBQuThO9VVAI/GLzVO98s5HvXG65+vSvPwZwoKuHvhrwcsJr4kIJ95y8S5ieIkbsbw7ZBEVMjRlkqGMEC3aPAJhPp3m6x8D2MOhccV27n03tjqnek0xCNpwao0CcJiY1/0XR5qQLpEUzt+Y2QAaL94jy1JyAIbUpbHnHYXOtEx8LGCF8eqIhx0mQtKSTzBXiERrRqBahEn01/sNlhs8N4sfnIreJrBHefrk2SQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Apr 12, 2023 at 9:43=E2=80=AFAM Peter Xu wrote: > > Provide two helpers to open an uffd handle. Drop the error checks around > SKIPs because it's inside an errexit() anyway, which IMHO doesn't really > help much if the test will not continue. > > Reviewed-by: David Hildenbrand > Reviewed-by: Mike Rapoport (IBM) > Signed-off-by: Peter Xu Reviewed-by: Axel Rasmussen > --- > tools/testing/selftests/mm/uffd-common.c | 28 +++++------------------- > tools/testing/selftests/mm/vm_util.c | 24 ++++++++++++++++++++ > tools/testing/selftests/mm/vm_util.h | 2 ++ > 3 files changed, 31 insertions(+), 23 deletions(-) > > diff --git a/tools/testing/selftests/mm/uffd-common.c b/tools/testing/sel= ftests/mm/uffd-common.c > index daa5b5781e7a..09ea24c5f02c 100644 > --- a/tools/testing/selftests/mm/uffd-common.c > +++ b/tools/testing/selftests/mm/uffd-common.c > @@ -192,34 +192,16 @@ void uffd_stats_report(struct uffd_stats *stats, in= t n_cpus) > printf("\n"); > } > > -static int __userfaultfd_open_dev(void) > -{ > - int fd, _uffd; > - > - fd =3D open("/dev/userfaultfd", O_RDWR | O_CLOEXEC); > - if (fd < 0) > - errexit(KSFT_SKIP, "opening /dev/userfaultfd failed"); > - > - _uffd =3D ioctl(fd, USERFAULTFD_IOC_NEW, UFFD_FLAGS); > - if (_uffd < 0) > - errexit(errno =3D=3D ENOTTY ? KSFT_SKIP : 1, > - "creating userfaultfd failed"); > - close(fd); > - return _uffd; > -} > - > void userfaultfd_open(uint64_t *features) > { > struct uffdio_api uffdio_api; > > if (test_dev_userfaultfd) > - uffd =3D __userfaultfd_open_dev(); > - else { > - uffd =3D syscall(__NR_userfaultfd, UFFD_FLAGS); > - if (uffd < 0) > - errexit(errno =3D=3D ENOSYS ? KSFT_SKIP : 1, > - "creating userfaultfd failed"); > - } > + uffd =3D uffd_open_dev(UFFD_FLAGS); > + else > + uffd =3D uffd_open_sys(UFFD_FLAGS); > + if (uffd < 0) > + err("uffd open failed (dev=3D%d)", test_dev_userfaultfd); > uffd_flags =3D fcntl(uffd, F_GETFD, NULL); > > uffdio_api.api =3D UFFD_API; > diff --git a/tools/testing/selftests/mm/vm_util.c b/tools/testing/selftes= ts/mm/vm_util.c > index bb633d050d71..5ee6c4688a7c 100644 > --- a/tools/testing/selftests/mm/vm_util.c > +++ b/tools/testing/selftests/mm/vm_util.c > @@ -3,6 +3,8 @@ > #include > #include > #include > +#include > +#include > #include "../kselftest.h" > #include "vm_util.h" > > @@ -230,3 +232,25 @@ int uffd_unregister(int uffd, void *addr, uint64_t l= en) > > return ret; > } > + > +int uffd_open_dev(unsigned int flags) > +{ > + int fd, uffd; > + > + fd =3D open("/dev/userfaultfd", O_RDWR | O_CLOEXEC); > + if (fd < 0) > + return fd; > + uffd =3D ioctl(fd, USERFAULTFD_IOC_NEW, flags); > + close(fd); > + > + return uffd; > +} > + > +int uffd_open_sys(unsigned int flags) > +{ > +#ifdef __NR_userfaultfd > + return syscall(__NR_userfaultfd, flags); > +#else > + return -1; > +#endif > +} > diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftes= ts/mm/vm_util.h > index 3a9762022efd..481354141533 100644 > --- a/tools/testing/selftests/mm/vm_util.h > +++ b/tools/testing/selftests/mm/vm_util.h > @@ -48,6 +48,8 @@ unsigned long default_huge_page_size(void); > int uffd_register(int uffd, void *addr, uint64_t len, > bool miss, bool wp, bool minor); > int uffd_unregister(int uffd, void *addr, uint64_t len); > +int uffd_open_dev(unsigned int flags); > +int uffd_open_sys(unsigned int flags); > > /* > * On ppc64 this will only work with radix 2M hugepage size > -- > 2.39.1 >