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 28839CA0EE4 for ; Fri, 30 Aug 2024 12:52:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CE586B0138; Fri, 30 Aug 2024 08:52:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 97DAF6B013A; Fri, 30 Aug 2024 08:52:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 81ECE6B0138; Fri, 30 Aug 2024 08:52:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 639CB6B00BC for ; Fri, 30 Aug 2024 08:52:54 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D043A4043D for ; Fri, 30 Aug 2024 12:52:53 +0000 (UTC) X-FDA: 82508901426.20.C4127A0 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by imf24.hostedemail.com (Postfix) with ESMTP id EB7BE180007 for ; Fri, 30 Aug 2024 12:52:51 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IipEZYCm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=pedro.falcato@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725022271; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=B/570cclLdWZD3k/8NAqWM1ozjFwAOjURdHiI/FEaSk=; b=BvENATcB6HpRjdfVDWk+5/r6yQ8S5IcxotKL5ZeQOt4/yXtLz3Huo431BHp7S3CQHf8W2d H1Y87Ibfaef+Qw+3AIrLrF/cwR2uls9pZlKybj4gmaN++LsMErOvwih4iPzj5LC3ibNnfi 6nlTMQwoCWtqJ0mUqKBEEJo1HEJHVaQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725022271; a=rsa-sha256; cv=none; b=BIoUK+NpKhkZ9aaTTgMnZknYHTMhGTFTV0KMGgRXRLzidjRZbU4ybXEal0eP7zcpooKFVS XN8KSF0Adn04seFMsb1hpjgRDfydCdQVk/wSO23W86/aS+jJZg4MWk2SahQkYbMKkXYbbw MqXOQj8+iU9zQFdqyID0RTl8W1Zm1Fc= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=IipEZYCm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of pedro.falcato@gmail.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=pedro.falcato@gmail.com Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-427fc97a88cso15136045e9.0 for ; Fri, 30 Aug 2024 05:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725022370; x=1725627170; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=B/570cclLdWZD3k/8NAqWM1ozjFwAOjURdHiI/FEaSk=; b=IipEZYCmWEnXsYD57kLfBqlFwDTsfCdcwl2wp2MFYa7dcv6JcYK/u7k9AlYpoQ7xGf xubfsRmGRdh3TxzCXnRqtF+r2oTEBBa2qvEYr5FVGyNMqYfvQmxXNRPfHU38Py4nAQs4 PoKPuObwFFtLzxs9KBQ2sUN1l55OapFRJsGoKfjwZjcHiEs5VoTYotDV/M9+JSjh/GG2 mfvUi+ls63GFXmLcUeOnZJmyNoNI2R9m3c+TAyVEAXZqm639oUXfuIAUucSSzS6xYdIM bVAt5pRiqGHhFnaFOnhT8bYGbCykvonva423Sxtc+47SUEUZv3C/OSZHjaXLeKq3NfUZ 4F3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725022370; x=1725627170; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=B/570cclLdWZD3k/8NAqWM1ozjFwAOjURdHiI/FEaSk=; b=IOdSKrc+BgupJKOSrNRlSUhx/RXytEkWIjajUkDsQmsCtnrrvQK1cbps95Sx4XXkor vmvAP+rGIJSrhhD6ZVNenazNp6OERg/YE8rQMNFRklK17ekYge6JqSjd/qbDu22Sq860 +qAheLt71GMMBb2JugddhBNinTpeQcVyjWk+2Q3CpAVPcsjH+VbQCBKn1IF3dJTq4vSk 2AU7vDBSA/hCMBlRsShMNaeQIuBGfl+F2S/Gmya+ByJY/XhrfmCKj5y1Tg8eQDLaKs2n PsOEWJaD0m3qt7fIKSlMkmVHjsjiXc6JRv6X5zt4FuHj3uvt8+kuPRPMripK8/u3NUdy i5rA== X-Forwarded-Encrypted: i=1; AJvYcCVfZiI/gF/TWNYGael1eMXpyZV5hOGYy4szmdMVEyfkDZh4ojMT7FlyZ0CFpQMch7uRhC18TxhDwQ==@kvack.org X-Gm-Message-State: AOJu0YxDMTva2V0NzKvXIwjF53S4KDBCa/5WXnYmVRs5zjtQ5AV+gxoM DzTVQF18tQ3dnbb0TDrRIYBLpet5K3C+GZhVKZQ0fo4Z++I+ZSE5BNSHyg== X-Google-Smtp-Source: AGHT+IEvj0O5jYf+isd21q/xr6784Ev1IwUiwpxzlwD7cJKfBGrepY5KrM3e7ldnpMLsNkHBHXaNyw== X-Received: by 2002:a05:600c:1914:b0:426:5269:9838 with SMTP id 5b1f17b1804b1-42bb0242552mr50403875e9.4.1725022369524; Fri, 30 Aug 2024 05:52:49 -0700 (PDT) Received: from PC-PEDRO-ARCH ([2001:8a0:7862:ea00:1d36:5f53:3f57:14ad]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42bb6e33d60sm45802415e9.43.2024.08.30.05.52.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Aug 2024 05:52:49 -0700 (PDT) Date: Fri, 30 Aug 2024 13:52:46 +0100 From: Pedro Falcato To: jeffxu@chromium.org 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 Subject: Re: [PATCH v2 2/4] selftests/mm: mseal_test add sealed madvise type Message-ID: References: <20240829214352.963001-1-jeffxu@chromium.org> <20240829214352.963001-3-jeffxu@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240829214352.963001-3-jeffxu@chromium.org> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: EB7BE180007 X-Stat-Signature: h6iw7xgymeut7j5onhs5mbh4hmigzidu X-Rspam-User: X-HE-Tag: 1725022371-855934 X-HE-Meta: U2FsdGVkX18ztV8K2/i1yFV0ZJFhiLw+sq4ytlLvN6ZpP/JrdKHQhrnp3oWOr7Q+bsGic3FtwSm4aKBi8Py8i+txRbiaQYbQGSp/P1g+sA+c4jngLRg5Scy3KyYPTFTrW99B7YoTdslgv5hUftPbbvEAhRrRkomnzRhvpC8/VbRPpbxaHWvKsb8CsiEkoS+ft9bEOEWqhSrym52xP9WXYL1fv4fF8wU1GsGao4ZBbeOf3Tn6/DPN/hUML2FYlKNORH7+4ynjhmxf40xjSDuAZIubjaUffkEWcf8Z0qvjv24xghpvWbwcoXStzNbXA7m+ADfQDXswpOicxtxJCfSyZrUbTMHG0m5dDeqNNlOk4dKJ7xm8cixbTx9VEjTg1jizG/yaRR52OwpXiRfRK53Oc1XTV3i4A4c+ulyMadYF0/rM/uffXBx+q89NXghjcFtEjPxcq7WDG/NIjHaZGCGIF2obDEEkaO5mrL+ZNOLtdbGXbnflM+ro8h5TYldoWJij4aIFKvNBQNj/s6tr4zuE6e99Ap2aYQOUAGSUHsHjKrXcllWgWaDuoaLsmxc/q45x4evXmAsGO5voXg3FZiUc71qlBlgKTU6jGjdzdPA2j0NseiaS7iqC6QgzVGU3p888p3r1DJbaQPjqCixaquRjLQLJnLm0WE9AiSJKcRZdgV38cZNDNaBCvCQpIV6S3NMoZZo/hyW4PT14UzSMMVh+Avcbea53HoFnMpGoC1RnloFNBJzftYQ39eeh/WkUYW7a+zXpS1EV7t7vefb6vGyChoWAWz4MV06echlvtUpeEyAES++gyIIddNbbypmDhHJ0wkbseeM0kYHXzI3iBj+03x3oivz9FeTnYQsNtBHbOKKRSrCn7dvrZ0KQFjfuGu/zXXZUEk95eseF7IEAS8J/l85n5WBv6b5sOPP8xUA9wvm/srW+CnmJJsZF2/D5FZB04seUhsUxuGu9mFJ/obp 9zD6qCcn QXUrgGHTmmNm1fUJVTz0Hh6e4evhFm7IbCAa1zm5AsV+2Fg7NlTjjxveQYDNjyrox9x/2aHGJ+fIYDweJNsZzcyz/E0+/dNAKB6ZI8WfgFyQe3n4EM1T21d6bqlmJMhoHwhZyOWlcbRPk1Y5yG3g4O619pM6gQ91oOw2To3aYPJwy6IQiBNvcz3LRNCaNVU5shFlQ2dwAbqMz7T4ca9zQYhxJMsRBE55GHrXSHdMsiFDKVhOofLzut5mSqh49f6QgCKnIbWEcZJ7IWK9qFguveZ07KxN0+ec9sjt3dnWVvTuTsBwR6kaVHam79mj4NKdS0A8jDlOcjrAnhiJ+9D7Gtvq6AHUqJRha9csyZ/bHBGYyNRy5N9S6GOlyQnhAyVv54/Xkrovc2/sDEKGBYReHtqQciha3ZPLGUJ1mHxFAdZ7awvAMiAXtdLnf4v0Vy/Y2WAG7Gnc5qQQAcrhIqYZMDtL8L7/SJGDK/Gjg9reaJDdiCCBtvWtUbckxVw+gHmsQuqt9WftXsNQYUJPHSSQ6PKGPr62kTe2eQJmb X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, 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 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/selftests/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 seal) > REPORT_TEST_PASS(); > } > > +static void test_seal_discard_madvise_advice(void) > +{ > + void *ptr; > + unsigned long page_size = getpagesize(); > + unsigned long size = 4 * page_size; > + int ret; > + int sealed_advice[] = {MADV_FREE, MADV_DONTNEED, > + MADV_DONTNEED_LOCKED, MADV_REMOVE, > + MADV_DONTFORK, MADV_WIPEONFORK}; > + int size_sealed_advice = sizeof(sealed_advice) / sizeof(int); > + > + setup_single_address(size, &ptr); > + FAIL_TEST_IF_FALSE(ptr != (void *)-1); > + > + ret = seal_single_address(ptr, size); > + FAIL_TEST_IF_FALSE(!ret); > + > + for (int i = 0; i < size_sealed_advice; i++) { > + ret = sys_madvise(ptr, size, sealed_advice[i]); > + FAIL_TEST_IF_FALSE(ret < 0); > + FAIL_TEST_IF_FALSE(errno == EPERM); > + } > + > + REPORT_TEST_PASS(); > +} This can replace some of the other 9 discard tests already there, no? > + > +static void test_munmap_free_multiple_ranges(bool seal) > +{ > + void *ptr; > + unsigned long page_size = getpagesize(); > + unsigned long size = 8 * page_size; > + int ret; > + int prot; > + > + setup_single_address(size, &ptr); > + FAIL_TEST_IF_FALSE(ptr != (void *)-1); > + > + /* unmap one page from beginning. */ > + ret = sys_munmap(ptr, page_size); > + FAIL_TEST_IF_FALSE(!ret); > + > + /* unmap one page from middle. */ > + ret = sys_munmap(ptr + 4 * page_size, page_size); > + FAIL_TEST_IF_FALSE(!ret); > + > + size = get_vma_size(ptr + page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 3 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + size = get_vma_size(ptr + 5 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 3 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + > + /* seal the last page */ > + if (seal) { > + ret = sys_mseal(ptr + 7 * page_size, page_size); > + FAIL_TEST_IF_FALSE(!ret); > + > + size = get_vma_size(ptr + 1 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 3 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + size = get_vma_size(ptr + 5 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 2 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + size = get_vma_size(ptr + 7 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 1 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + } > + > + /* munmap all 8 pages from beginning */ > + ret = sys_munmap(ptr, 8 * page_size); > + if (seal) { > + FAIL_TEST_IF_FALSE(ret); > + > + /* verify mapping are not changed */ > + size = get_vma_size(ptr + 1 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 3 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + size = get_vma_size(ptr + 5 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 2 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + > + size = get_vma_size(ptr + 7 * page_size, &prot); > + FAIL_TEST_IF_FALSE(size == 1 * page_size); > + FAIL_TEST_IF_FALSE(prot == 4); > + } else { > + FAIL_TEST_IF_FALSE(!ret); > + > + for (int i = 0; i < 8; i++) { > + size = get_vma_size(ptr, &prot); > + FAIL_TEST_IF_FALSE(size == 0); > + } > + } > + > + REPORT_TEST_PASS(); > +} Unrelated munmap change. -- Pedro