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 0EDD4C369C2 for ; Tue, 22 Apr 2025 10:38:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E5CB36B0005; Tue, 22 Apr 2025 06:38:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E0B8A6B0007; Tue, 22 Apr 2025 06:38:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CFA8B6B0008; Tue, 22 Apr 2025 06:38:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B14F96B0005 for ; Tue, 22 Apr 2025 06:38:04 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8EA45C06A1 for ; Tue, 22 Apr 2025 10:38:05 +0000 (UTC) X-FDA: 83361329730.03.5B5055F Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf27.hostedemail.com (Postfix) with ESMTP id 68F8840005 for ; Tue, 22 Apr 2025 10:38:03 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf27.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745318284; a=rsa-sha256; cv=none; b=lJ+ymeEqXYgpxhYCsuBVSMRqHap52aXrE6N3lWC6uu+ddiw2AzRFYWRqqEE+C7ZHnScGdV JPMkcXHn8K3PPDVq01cTFku8DZMqm/VJJCNbNyKNfyQCCe5c22p7eqA302XThBseuHd4wd ggIgGBBCQbjJwJ0HK+MVTatSuKAvvXA= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf27.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745318284; 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; bh=V/fQinykupD1cEhJIwsCKz8wedBpS3oDFrXCnuwFSiU=; b=XrmzwebS/MpNiQx+zLoKnDRJIZe5/8DUxGCw9tLrwBVTR+YK5lO7oX81VrSz+K5jPv3n8D 2ArQdchEx6RfXeUdH0LrdDwonDS2P3Ec/wYQZksYdqLFGTC6gmK3XUqSF1Etz86rGEIHo1 ZvmPeN2EsTI5s81z0T/AOubbhHRbG+M= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 34D4C152B; Tue, 22 Apr 2025 03:37:58 -0700 (PDT) Received: from [10.57.90.106] (unknown [10.57.90.106]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AC7BF3F66E; Tue, 22 Apr 2025 03:37:59 -0700 (PDT) Message-ID: Date: Tue, 22 Apr 2025 11:37:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/4] tools/selftests: expand all guard region tests to file-backed Content-Language: en-GB To: Lorenzo Stoakes , Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Matthew Wilcox , Vlastimil Babka , "Paul E . McKenney" , Jann Horn , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Shuah Khan , linux-kselftest@vger.kernel.org, linux-api@vger.kernel.org, John Hubbard , Juan Yescas , Kalesh Singh References: From: Ryan Roberts In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 68F8840005 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: mr4rca15wmmpbkf7tjpc5fha7fh5h31m X-HE-Tag: 1745318283-957880 X-HE-Meta: U2FsdGVkX1+yMM7qApCMs6BDQMrY3CEfMkuWJbhCXaZAvaYclGvwLhVEhl4Vp34z4nxwymKSLKMSg29Usi6q2FKMDz3jE1qYX5BVeFfqRaff2asR29RhyoiQvJiB24xLl9Me4zOb11L5w0fdNH09GyjltjEL+dTFKUad2hwSGZBdXObqQMpXFeBadLddreYwnepBEaZQeVdsVjMbW7jglCohdlrJ29nUCLYAc5NseyoVZufc7dNhphuZPmEU46mRe2rR2dF0Hays/tCWYqD9Y7n5EdFOfaqbu98l94l7xb8f9WfYvcZnKNvChqeCndtw554eTBXAu7kJ6P8AdUjhkAYTgEB+r1/zxtyazJ3MkF/WXxJQKronSCVKFbgC1utsjKzZDjGH12S7UulmD3KxLyP/OEEjwqP4TL1M4YGwGa/Sh0i8grKR7u6A8ywt7A4UZ8gWvKA+ORIYfsHwO4C5VPRbY9EY5GeIqxBYDxk+L3C3yQnjGHBurnsrScV1JY7aTNwh00uL6768kcWmXQYeP0fAwOxl7cd7TOsBwnRqpslhNP92fta4/ioRn79yUSgP88K0S0UQCVD+DrmceLAwsJdcndKiCy6NAGX1OKhFwB+JmkgcS9BvQJx/AjEqradk+b/2vY8rm1vnUrR1dR5tfu79bssMLCu6DZ2UbVRuz5zDqSQ1LaZSV2ZeSWt90rRVGPYyG2lJI7RLcSVx/oIvIqx5uhE9fpw9joSvpd7swBrACiKQWFhAoYMctRNvraoPeG7M5SNLQbcobm8mRvFcrF/QZVx0oBYjZc5EJ+IHb2cnw1HWaoD5NC7AqqiE7E48V6jurqO3u1q39WsK9pHM0+nbXuny46LqLA5yRcuoyaNNKtgx0bp8uXLlmZnsTG0WUGRYh3wzfWAtTMbJEJmAzZ8wGXLuyX8w7WLEmNukvCp1UdAYFMck6kk4Im4qMvMY0cC9v4qpN0QKd1jmTYO pyO4+y4L fJqL4jGy7fhrOnCv8XSkQdxp9vzNeSp51Sxq3+oUCGcYgD+YCarbp7PJjYeJ4ThADH/Nt727nJpN4/UTif/giAwtHy6gAl3FvilgSYIAjVUVg7rDsu17xlNYBPrSMm3uRjnO1OHCYxo+mrXc5/iq3Vz+sUA== 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 13/02/2025 18:17, Lorenzo Stoakes wrote: > Extend the guard region tests to allow for test fixture variants for anon, > shmem, and local file files. > > This allows us to assert that each of the expected behaviours of anonymous > memory also applies correctly to file-backed (both shmem and an a file > created locally in the current working directory) and thus asserts the same > correctness guarantees as all the remaining tests do. > > The fixture teardown is now performed in the parent process rather than > child forked ones, meaning cleanup is always performed, including unlinking > any generated temporary files. > > Additionally the variant fixture data type now contains an enum value > indicating the type of backing store and the mmap() invocation is > abstracted to allow for the mapping of whichever backing store the variant > is testing. > > We adjust tests as necessary to account for the fact they may now reference > files rather than anonymous memory. Hi Lorenzo, I'm getting a test failure in v6.15-rc3 on arm64: ----8<---- # RUN guard_regions.shmem.uffd ... # guard-regions.c:1467:uffd:Expected ioctl(uffd, UFFDIO_REGISTER, ®) (-1) == 0 (0) # uffd: Test terminated by assertion # FAIL guard_regions.shmem.uffd not ok 45 guard_regions.shmem.uffd ----8<---- The ioctl is returning EINVAL. [...] > @@ -1281,6 +1398,9 @@ TEST_F(guard_regions, uffd) > struct uffdio_register reg; > struct uffdio_range range; > > + if (!is_anon_backed(variant)) Perhaps this should be filtering out shmem too? Although the manual for userfaultfd implies that shmem is supported: """ Up to Linux 4.11, userfaultfd can be used only with anonymous private memory mappings. Since Linux 4.11, userfaultfd can be also used with hugetlbfs and shared memory mappings. """ But I'm not sure if that's referring specifically to UFFDIO_REGISTER_MODE_MISSING? Any ideas before I start debugging further? Thanks, Ryan > + SKIP(return, "uffd only works on anon backing"); > + > /* Set up uffd. */ > uffd = userfaultfd(0); > if (uffd == -1 && errno == EPERM) > @@ -1290,8 +1410,8 @@ TEST_F(guard_regions, uffd) > ASSERT_EQ(ioctl(uffd, UFFDIO_API, &api), 0); > > /* Map 10 pages. */ > - ptr = mmap(NULL, 10 * page_size, PROT_READ | PROT_WRITE, > - MAP_ANON | MAP_PRIVATE, -1, 0); > + ptr = mmap_(self, variant, NULL, 10 * page_size, > + PROT_READ | PROT_WRITE, 0, 0); > ASSERT_NE(ptr, MAP_FAILED); > > /* Register the range with uffd. */