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 4C343CA1005 for ; Fri, 30 Aug 2024 15:46:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D43D86B0182; Fri, 30 Aug 2024 11:46:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF28A6B0183; Fri, 30 Aug 2024 11:46:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBA876B0184; Fri, 30 Aug 2024 11:46:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 9BDDF6B0182 for ; Fri, 30 Aug 2024 11:46:56 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4B86CAAE13 for ; Fri, 30 Aug 2024 15:46:56 +0000 (UTC) X-FDA: 82509340032.14.276EACA Received: from mail-oa1-f45.google.com (mail-oa1-f45.google.com [209.85.160.45]) by imf27.hostedemail.com (Postfix) with ESMTP id 7C87940002 for ; Fri, 30 Aug 2024 15:46:54 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=lx41mg4l; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf27.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.45 as permitted sender) smtp.mailfrom=jeffxu@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725032741; a=rsa-sha256; cv=none; b=ZecsR+FZgbnNDpILJ07hjurEVGXCVSX5XaFq5JX4OuWsygysafcI13n9X0hnN2i1FPqx8W JHrC62NmyC+M7Ws57wx2cSwlkVQEp53W9ESLIXPnqDXSdgKpLe1E/pkkzkIbXxCjT3TWLd 80Vu8NOb1LevaMfX4rBTi1viWs06m60= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=lx41mg4l; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf27.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.45 as permitted sender) smtp.mailfrom=jeffxu@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725032741; 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=M8bk6NlnoUxn0Dwk2YP4Jj7Nsfj0s1LGq69qFBq4LJs=; b=jnOYGiOyvaxai0P/KN/H+N9gRB8fknmF3nXT9xAspra0xNSMhPp3fMunkLSVMsW+Qx3cHK ORJW2D/0MDDsBX4Kywqm6L8nuU1iFCO0vFvHC0optSrSNzpQCv4/7RSLEPqJRq5DHUl59e lptA3D5jkN6bmnyixpp4AdxQKrHtH+g= Received: by mail-oa1-f45.google.com with SMTP id 586e51a60fabf-268e0b13471so129018fac.2 for ; Fri, 30 Aug 2024 08:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1725032813; x=1725637613; darn=kvack.org; 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=M8bk6NlnoUxn0Dwk2YP4Jj7Nsfj0s1LGq69qFBq4LJs=; b=lx41mg4lmZSz0TmyBDE9oE6+WllabhMi2ruTnsB1Xzn/x/mcpUBgEi/yYRz4tk66HJ iHO2JRYzMIRw2wEW/X9vxc0eYr5o2hB/XAWQhkuoA0ThmfuGR6Z+IfZXJcyu8Lwvu66u vchTLz6u3Hk9HcrOE2Lii/Hla9wc/hswmM/9k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725032813; x=1725637613; 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=M8bk6NlnoUxn0Dwk2YP4Jj7Nsfj0s1LGq69qFBq4LJs=; b=R3TPqhpWC4AjSS9Kl8TOUmTnfdwdCNl1tvaWuqkB1zaq8p23VrMByJ1EFSQY0fRFeQ udrWWSgZQ2Gb8jonsDiT/Oz/UMKuvlq73zkcVY/tqQDvowI1VM890lN9W20aS338W6dK Ic0Au9O4PX6mE7xIdS4fkWJ+faPL4eo91mYnhfSlbiS7aXy+ZtKHA1vBhqCjTeBF/dc/ Ps5eG2JL9h9EotknpfTm7j5AhSDBZ4AgTxyD3WtUkJBNV2zGClBjI4gsEMPVPzyHx4Nj tX2bmA4YwYsL4hLSZcs5DFmEANNMCz5W5AafmYF0ulO9ozIWFSuFXQTMVVH2bV1b0fJy NV0A== X-Forwarded-Encrypted: i=1; AJvYcCXeif/oOlo3C0+r+OH713rNWg8DKQ4qAazZIFsBkMr5uSjxoQPFWuyztwhaFRLzJy18lAuYbFkpoQ==@kvack.org X-Gm-Message-State: AOJu0Yy1sYJS0lKmAC+6WAnBxVNrINiPqh5Nf1sdMBpVQzVLddrOOKYv rGgpaDtQJJRF4kLnuhyRIMnmnpOeUzklQXmjA73DxwsRsRKnAoVTVkmOV5lezcIAwSq2LyCXygu 4KHMUfS0gCy2YscAMSc+SWjuVOxLofNFWTBbw X-Google-Smtp-Source: AGHT+IEAjSF1X499v/FKP2PTPABhbt9CR+HTuwUDdQPyxVSzRisW3oW8eIPO3E4b/V5N3gxkpw61MmKTYe2iyF/kMgY= X-Received: by 2002:a05:6870:f29c:b0:269:1020:a8a0 with SMTP id 586e51a60fabf-277b0be0b23mr1403373fac.4.1725032813260; Fri, 30 Aug 2024 08:46:53 -0700 (PDT) MIME-Version: 1.0 References: <20240829214352.963001-1-jeffxu@chromium.org> <20240829214352.963001-3-jeffxu@chromium.org> In-Reply-To: From: Jeff Xu Date: Fri, 30 Aug 2024 08:46:41 -0700 Message-ID: Subject: Re: [PATCH v2 2/4] selftests/mm: mseal_test add sealed madvise type To: Pedro Falcato Cc: akpm@linux-foundation.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org, willy@infradead.org, lorenzo.stoakes@oracle.com, broonie@kernel.org, vbabka@suse.cz, Liam.Howlett@oracle.com, rientjes@google.com, keescook@chromium.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7C87940002 X-Stat-Signature: gpan3qm6akqhocmfterrrwd18f1fpzmf X-Rspam-User: X-HE-Tag: 1725032814-67255 X-HE-Meta: U2FsdGVkX188LYuc3T/RZoLJ+/P5UbKQTKbHHU5nlCF9cKEbsOEVS+ywEJUqROf9ZZ8zzMohR1osOcrNO94rkk/jhjt0dp2UeZC/55eXudXEXsKzg9wLiODNq7CjReMcK8FE+L49gLaNAtO0O1Cx0TggfINnPfkkJhGJuW6DMGFo/wLVBNhbGFYlcC3QRCMfGj7r9rRxu5+lv999Onlny7GLDKVYP6xfLHHGRSWDOR5qAVHZgjn+4WDccns7+rdd1xnR52FKBhn+HRtRhlfDB3nXQzp7wEW+HZ8v1qIKbnIOaDo0jSvmQhVtTxvG7BYF16TCXL0/qzL6EWEgZn3vBpmXEuWqZ+d8c7oNI+iAVtVEnNM/FoTKLR5IeSZxQB0jFN3O5JZIpIGFvjsaU8U7sNsgkMJ2NADQqIUUEZIJeCjzvlWLf8u1hRVgbobtMW8BxGgkZv1d4hbPplH+fU9TgdBgFnb0dKi1b/CqZCOJLBFfi8/G4+AgOAhOzLBGamSFMxhe/ZHI+xQLPuqwnFPW3/lVMhR2rO1XJx8X90BkKSbiRuEQIhoZbOsS3DzTJSRWss2rlmm9UMhjUKoIJgLzQpcJJOzWk7arjY0MZ1cZrTV8DD+o/7KcYQ4+JBYp0UpY126Mxiq1ibMyZSRrZeWyHq9g239oI9G4YxojnG9jNZyFN8VgJRSNqMRxtzEnMb3gIWcrbs8WvlhasIO/nFch8YV01k0xjN/3hMTXSjd8tVsIOa7m3uiHeuXCTQMQht+6ongckZC/7O+VTdmYLk7Te7kf1FdV9n9DKmI85Uuo8Vyxp/GVf6jrpvdOU3zomLTWb6eNWaIJLo7FXIiRhwXtK6c4ocBguEOtGy4ZnxDBIBpucfABfnWju4on4Ls2Jko9Z45gUepm6vZL/SYeAt9IYo4/xA3vdSElz9OSDd5xwwQMIe/RyAD3nWFpiOPlRjVU4FrgoZdSf5UDzRcDXE3 4UF59TqA wfllx8eRIxVKjaSdCbqYR0xo3JNWa5pZtR2Zua6G99i1tn8DSfRNRplJYIj88Ulgn8Efa6Yg1ViIdl2FObDn1WayXYBSChLM1DRFgWzaa3UxNuXE/0/jOcwvYLMCiwVVtcYmqdxYi+t+jTmLj1A2cCU4DBovcERFWzSK+ZYi+sHJNj3ZGnRG1Zco2RWNmiXEp0MF+zF14HYoQGvcu3XY/IeAXtEnBVhCoUy2dsa1NucD5Jg2CiIyq0sVHqpF8TORigMMXVx+cJ17ihSohAl2N9yMGbvO0tJAf96gJRLwMq07hUdbdevau18VJ/y3mTc8rXzn6+3Xx0ni3HI6DOAitEpUw+ClXQx8xph+WB793ZyX7nUE= 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: List-Subscribe: List-Unsubscribe: On Fri, Aug 30, 2024 at 5:52=E2=80=AFAM Pedro Falcato wrote: > > On Thu, Aug 29, 2024 at 09:43:50PM GMT, jeffxu@chromium.org wrote: > > From: Jeff Xu > > > > Add a testcase to cover all sealed madvise type. > > > > Signed-off-by: Jeff Xu > > --- > > tools/testing/selftests/mm/mseal_test.c | 108 +++++++++++++++++++++++- > > 1 file changed, 107 insertions(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/mm/mseal_test.c b/tools/testing/se= lftests/mm/mseal_test.c > > index adc646cf576c..ae06c354220d 100644 > > --- a/tools/testing/selftests/mm/mseal_test.c > > +++ b/tools/testing/selftests/mm/mseal_test.c > > @@ -2121,6 +2121,107 @@ static void test_seal_madvise_nodiscard(bool se= al) > > REPORT_TEST_PASS(); > > } > > > > +static void test_seal_discard_madvise_advice(void) > > +{ > > + void *ptr; > > + unsigned long page_size =3D getpagesize(); > > + unsigned long size =3D 4 * page_size; > > + int ret; > > + int sealed_advice[] =3D {MADV_FREE, MADV_DONTNEED, > > + MADV_DONTNEED_LOCKED, MADV_REMOVE, > > + MADV_DONTFORK, MADV_WIPEONFORK}; > > + int size_sealed_advice =3D sizeof(sealed_advice) / sizeof(int); > > + > > + setup_single_address(size, &ptr); > > + FAIL_TEST_IF_FALSE(ptr !=3D (void *)-1); > > + > > + ret =3D seal_single_address(ptr, size); > > + FAIL_TEST_IF_FALSE(!ret); > > + > > + for (int i =3D 0; i < size_sealed_advice; i++) { > > + ret =3D sys_madvise(ptr, size, sealed_advice[i]); > > + FAIL_TEST_IF_FALSE(ret < 0); > > + FAIL_TEST_IF_FALSE(errno =3D=3D EPERM); > > + } > > + > > + REPORT_TEST_PASS(); > > +} > > This can replace some of the other 9 discard tests already there, no? > No, this is focused on enumerating all types. > > + > > +static void test_munmap_free_multiple_ranges(bool seal) > > +{ > > + void *ptr; > > + unsigned long page_size =3D getpagesize(); > > + unsigned long size =3D 8 * page_size; > > + int ret; > > + int prot; > > + > > + setup_single_address(size, &ptr); > > + FAIL_TEST_IF_FALSE(ptr !=3D (void *)-1); > > + > > + /* unmap one page from beginning. */ > > + ret =3D sys_munmap(ptr, page_size); > > + FAIL_TEST_IF_FALSE(!ret); > > + > > + /* unmap one page from middle. */ > > + ret =3D sys_munmap(ptr + 4 * page_size, page_size); > > + FAIL_TEST_IF_FALSE(!ret); > > + > > + size =3D get_vma_size(ptr + page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 3 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + size =3D get_vma_size(ptr + 5 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 3 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + > > + /* seal the last page */ > > + if (seal) { > > + ret =3D sys_mseal(ptr + 7 * page_size, page_size); > > + FAIL_TEST_IF_FALSE(!ret); > > + > > + size =3D get_vma_size(ptr + 1 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 3 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + size =3D get_vma_size(ptr + 5 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 2 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + size =3D get_vma_size(ptr + 7 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 1 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + } > > + > > + /* munmap all 8 pages from beginning */ > > + ret =3D sys_munmap(ptr, 8 * page_size); > > + if (seal) { > > + FAIL_TEST_IF_FALSE(ret); > > + > > + /* verify mapping are not changed */ > > + size =3D get_vma_size(ptr + 1 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 3 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + size =3D get_vma_size(ptr + 5 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 2 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + > > + size =3D get_vma_size(ptr + 7 * page_size, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 1 * page_size); > > + FAIL_TEST_IF_FALSE(prot =3D=3D 4); > > + } else { > > + FAIL_TEST_IF_FALSE(!ret); > > + > > + for (int i =3D 0; i < 8; i++) { > > + size =3D get_vma_size(ptr, &prot); > > + FAIL_TEST_IF_FALSE(size =3D=3D 0); > > + } > > + } > > + > > + REPORT_TEST_PASS(); > > +} > > Unrelated munmap change. will move. > > -- > Pedro