From patchwork Mon Mar 17 10:20:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan Jackman X-Patchwork-Id: 14018954 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 C8D54C282EC for ; Mon, 17 Mar 2025 10:20:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D340B280002; Mon, 17 Mar 2025 06:20:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE346280001; Mon, 17 Mar 2025 06:20:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAAAD280002; Mon, 17 Mar 2025 06:20:52 -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 9E099280001 for ; Mon, 17 Mar 2025 06:20:52 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 9E55A1C6590 for ; Mon, 17 Mar 2025 10:20:52 +0000 (UTC) X-FDA: 83230649544.14.9E16D0C Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) by imf03.hostedemail.com (Postfix) with ESMTP id BA0C42000D for ; Mon, 17 Mar 2025 10:20:50 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UN3V8Ssk; spf=pass (imf03.hostedemail.com: domain of 3gffXZwgKCBY5wy68w9x2AA270.yA8749GJ-886Hwy6.AD2@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3gffXZwgKCBY5wy68w9x2AA270.yA8749GJ-886Hwy6.AD2@flex--jackmanb.bounces.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=1742206850; 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: references:dkim-signature; bh=kbZ86BA4kdFbqSY9+s8S+XusL7glxmlCPxfcM9oxYBA=; b=F6KN1s++ywtfgEG5/dcQzN1pRbVms+9n0izNLTeVdFoxRzb8ZVwk0ZcdyP22lhLZm3HLn8 pfNxYRfBHKgKBJiOBAnP+Z2i7f4RMeKDEeT/Cak+KUsH9vSf8oCzvhlMtLDCjShjpX68Cw GuJGo+xOXuOGWoRezxWX+1P/yXfbt8A= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UN3V8Ssk; spf=pass (imf03.hostedemail.com: domain of 3gffXZwgKCBY5wy68w9x2AA270.yA8749GJ-886Hwy6.AD2@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3gffXZwgKCBY5wy68w9x2AA270.yA8749GJ-886Hwy6.AD2@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742206850; a=rsa-sha256; cv=none; b=vojbLVbGITupL6soE1D5cU1iZOpsjrrA7Z6hcjX9U8cdVeRCisbetxbz9GCvmcAL0CVMEQ F4pIHYAu8TVRz3ZJM+6qGvYrl4BNXMCp/WJmJ2B1rpc90XO0ETzK6a7ZSl/k95Rvz6d+Fk NsqXbAx1rXRZ56tW9c12Hqx62fbt3VY= Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-43ce8f82e66so11334015e9.3 for ; Mon, 17 Mar 2025 03:20:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1742206849; x=1742811649; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=kbZ86BA4kdFbqSY9+s8S+XusL7glxmlCPxfcM9oxYBA=; b=UN3V8Sskzh6erW60CusRUE1TPhW07eQU1GAaI1ZKYZSWP7VpFn/N9R5M632sr9u6aq dfif5SPsOpk/hlf+p6goTF1ag+rq5+Q7MnqM6wKvqdq0HuPu9VcDjkA1PPT8Rpv7bK+B LJBAxs6QxMHqBit/njyOpBytf9K7Uaom4LYPIyfdjroqnS6aWwenrqxP2OLoiNcHMigZ jGTtdCle7ETxZeZn0FKML2J9rhKQzIZ9QaCukUZeOhAHmVSt/WYy9LqVb5wn7xpGqTQU QMFDFvoCg6dKIcIgX3c6ZglV6c/t45UHgeG7wqIQ8ExSxnMMvfSnaGBHAXRXkq+2l2uq EJYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742206849; x=1742811649; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=kbZ86BA4kdFbqSY9+s8S+XusL7glxmlCPxfcM9oxYBA=; b=PECm+g/A4xC+8kObLb4O1aPTIc7ZNnDnH0hzpPiYVV0u32BbVbYBDkA3qn4GJNl3Sm qjUxJ6aO/7WT2FsJ9WRSTyHZ2RO5JjRT0gKMn+i/we3acyoV9yaJRMOBk2sl1JMf+8D8 YAvFUUV7WrLamH0fkPT7zUUxvE7y4iTazRfTVkTqN1rZRkbS962AyMz06Mr67tDUnT7H yh4Z+WgleA7tFUBFJxowprP7EIazWeXWVRP6OWpg2OG0z0Tb25sTwd7MzVZFgdhrYuBc eM921EKvYNlY4ysoMlNYaU6V7XLDheTnnUJSLjrSPwaetLoMXGCOOv2b5ocsKfpmbn9H K9fA== X-Gm-Message-State: AOJu0YxY7cteQNiJkPTYRTxAjd3pWlyLbJhjIH/e/xkvJ86C3RPi/i5D I2WTZ8OYNbMR3cWsyRd+Vb52EUN/ZgugHjj7O8c5H+EbJWeh8LphAPj5ksuyj1+OEhh++J63Sov 0bDfMOcfPiw== X-Google-Smtp-Source: AGHT+IEzYbPI9MyXHYu4Ac9ur08nSh+vGUDuVixK4h8Z9GABnEMfkvbGKDEW4lcqW9eMX+ON+NXpj/wTIp3w+Q== X-Received: from wmdd21.prod.google.com ([2002:a05:600c:a215:b0:43b:c914:a2d9]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:350a:b0:43c:f70a:2af0 with SMTP id 5b1f17b1804b1-43d1ec8643amr128960045e9.16.1742206849047; Mon, 17 Mar 2025 03:20:49 -0700 (PDT) Date: Mon, 17 Mar 2025 10:20:34 +0000 Mime-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAHH312cC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDI1MDY0NzXcuCtGLd5Pzc3NS8kmJdI5Mks7REUxND8+QUJaCegqLUtMwKsHn RsbW1ALTkndhfAAAA X-Change-Id: 20250317-9pfs-comments-24b6fa5417cd X-Mailer: b4 0.14.2 Message-ID: <20250317-9pfs-comments-v1-1-9ac96043e146@google.com> Subject: [PATCH] selftests/mm: Add commentary about 9pfs bugs From: Brendan Jackman To: Andrew Morton , Shuah Khan Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Brendan Jackman , David Hildenbrand X-Rspam-User: X-Rspamd-Queue-Id: BA0C42000D X-Rspamd-Server: rspam08 X-Stat-Signature: 46yapisf3nzhuqeyetpdzf4hwqoa98es X-HE-Tag: 1742206850-684214 X-HE-Meta: U2FsdGVkX1/Wqfn6a2AcDGIurYISCtpSDIDGzz5sh67HasmH8rn/tJkgZN1IKazsvsr2zm0coZdyyJ4uzax0dbG96sbIBXMqOz5nyYu9kNmhbzjdmGU2QoXMZhB298hsJ/jMhrvLqdnU9K6C8hFBTsHXzTrVdC3Z69n1trgOxMa42JXH2IC4hQz/ZMg2Fj9AUBy7VvYtRCGlOGjN7dwooFgDPLlnjD8o4fbSK/bdwimsghKm5+Nm5t0XtdeNPNyPWeI8sxQn+EsHgrkep+zXup7kxk0aNu9UNH+ok8YjqBG4U2pI9vm/w6Fb/ev0oBTCaURsvXsKZYkJXIWMO4wo5Pl1X/TCL3ZIoo4uqRj/Ep82BWd/fvQiZDC4ZR+lnpnGhIKqleitBNda3mHNJY1te/rUepR4m0QJdNGT5P58vMpXiSSTceZCWMUNj19UZZvqsv+EVA6TCMZleHkTR9TavuQXnCDR2dKc4qaTZbiUYsuqRTBYjhVw+ZygWonrmBlHAPiNv1q8xUS6kLfBmPx3xa6neXVhp5Pb2n10tF6LM3rSlfhWbIKtpm7WtwckyHFt/bOlrpzX0iAlea0ObmmQatUCVeRJfZ+EPMqXm2wbLDTjk6IM9NyFYxzgCOEbMTZSfon2wZCSwN0q0R5MpRl3NhUoh5fC/idnWZf0uJuK7YlordC1X2zWYA8Go3gcJB1RX0H4f/Eev002G1v2cMLNHYmAlg1svkQwvFWjP7JRgKTmLjOSyMbKzvnISrSDOphOXY6rgaK6Whx4Xhf+Djr8zCTBNRk8HzDvEndapYdsN9D4ooapw2qKpNZ+eI4VPATWECcuC1FM8OISrlCbaHrUrJreLxIePEhlmZIvKUJBJcHAIlIU2iJZWI+A4uO0XqPQxal5AWOxAh8HkVfY12Llu1jYCz/NAxw3JNvImkcKsAowW2RWwbwNgJAUzeKlthK+kPSyy5REoSJU8DA2uwj Ul4DbHx0 WK/WgqiRJ4rpg3OCV44wcun5NUduH3eUqWTfw9l4S7sukSdVR0f65ARFF4TTGNuZ2u84raB9mahrZVNt0x3uajFvrGdqSeyjfv3T2NzG9na1GNPjcoQF6gqKiFVONVVNaLvPSyKFyNtKOdw9RUyouGQsEqKgJ+16KSN3eMxsz16QCN4FqCPaPauFILXsS+TN7excj2v3WmSBylxGDKUV7jLPp6iKP/EcpaP3nbDhjXvu9AZAzBjrj90eoSl/0yMJV3PtzZeyVwWUJ6npLBmsggVmoJB2DGSomzzi6ae6LxTzSFJc95InCrWyUuz9TdMPrl2QAQqCrgzm6mNPih/pnDDFQznFeU3LoSvKrlwlvP8PEnL0KowNnau9WqlCZW/k/EL6HTSgex+7nwBVhgj99iixoCJf0Tst6MI3FYkwQCJiGdjkLqBd0EB5TgkwtKYmOKDCrYj04NI7eI5b6z2oW4G4AafEuojdBW5WWTH/6fvwkAXJysR7VcW3+EO1PNarqEYRlQNeqSbhjY8VP8ZMIK5zsJVWq2nkbrbZNkh+isY7BrSiQ8Rn69HO2JpghovTZXkqUII7GnNE5rgwDNxRfRnDuyyhZuw3YYmZPGQoDWCKECafjEgO4TSMq7g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000134, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: As discussed here: https://lore.kernel.org/lkml/Z9RRkL1hom48z3Tt@google.com/ This code could benefit from some more commentary. To avoid needing to comment the same thing in multiple places (I guess more of these SKIPs will need to be added over time, for now I am only like 20% of the way through Project Run run_vmtests.sh Successfully), add a dummy "skip tests for this specific reason" function that basically just serves as a hook to hang comments on. Signed-off-by: Brendan Jackman --- To: David Hildenbrand --- tools/testing/selftests/mm/gup_longterm.c | 6 +----- tools/testing/selftests/mm/map_populate.c | 8 +++----- tools/testing/selftests/mm/vm_util.h | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 10 deletions(-) --- base-commit: a91aaf8dd549dcee9caab227ecaa6cbc243bbc5a change-id: 20250317-9pfs-comments-24b6fa5417cd Best regards, diff --git a/tools/testing/selftests/mm/gup_longterm.c b/tools/testing/selftests/mm/gup_longterm.c index 03271442aae5aed060fd44010df552a2eedcdafc..21595b20bbc391a0e5d0ab0563ac4ce5e1e0069f 100644 --- a/tools/testing/selftests/mm/gup_longterm.c +++ b/tools/testing/selftests/mm/gup_longterm.c @@ -97,11 +97,7 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) if (ftruncate(fd, size)) { if (errno == ENOENT) { - /* - * This can happen if the file has been unlinked and the - * filesystem doesn't support truncating unlinked files. - */ - ksft_test_result_skip("ftruncate() failed with ENOENT\n"); + skip_test_dodgy_fs("ftruncate()"); } else { ksft_test_result_fail("ftruncate() failed (%s)\n", strerror(errno)); } diff --git a/tools/testing/selftests/mm/map_populate.c b/tools/testing/selftests/mm/map_populate.c index 433e54fb634f793f2eb4c53ba6b791045c9f4986..9df2636c829bf34d6d0517e126b3deda1f3ba834 100644 --- a/tools/testing/selftests/mm/map_populate.c +++ b/tools/testing/selftests/mm/map_populate.c @@ -18,6 +18,8 @@ #include #include "../kselftest.h" +#include "vm_util.h" + #define MMAP_SZ 4096 #define BUG_ON(condition, description) \ @@ -88,11 +90,7 @@ int main(int argc, char **argv) ret = ftruncate(fileno(ftmp), MMAP_SZ); if (ret < 0 && errno == ENOENT) { - /* - * This probably means tmpfile() made a file on a filesystem - * that doesn't handle temporary files the way we want. - */ - ksft_exit_skip("ftruncate(fileno(tmpfile())) gave ENOENT, weird filesystem?\n"); + skip_test_dodgy_fs("ftruncate()"); } BUG_ON(ret, "ftruncate()"); diff --git a/tools/testing/selftests/mm/vm_util.h b/tools/testing/selftests/mm/vm_util.h index 0e629586556b5aae580d8e4ce7491bc93adcc4d6..6effafdc4d8a23f91f0adcb9e43d6196d651ba88 100644 --- a/tools/testing/selftests/mm/vm_util.h +++ b/tools/testing/selftests/mm/vm_util.h @@ -5,6 +5,7 @@ #include #include /* ffsl() */ #include /* _SC_PAGESIZE */ +#include "../kselftest.h" #define BIT_ULL(nr) (1ULL << (nr)) #define PM_SOFT_DIRTY BIT_ULL(55) @@ -32,6 +33,23 @@ static inline unsigned int pshift(void) return __page_shift; } +/* + * Plan 9 FS has bugs (at least on QEMU) where certain operations fail with + * ENOENT on unlinked files. See + * https://gitlab.com/qemu-project/qemu/-/issues/103 for some info about such + * bugs. There are rumours of NFS implementations with similar bugs. + * + * Ideally, tests should just detect filesystems known to have such issues and + * bail early. But 9pfs has the additional "feature" that it causes fstatfs to + * pass through the f_type field from the host filesystem. To avoid having to + * scrape /proc/mounts or some other hackery, tests can call this function when + * it seems such a bug might have been encountered. + */ +static inline void skip_test_dodgy_fs(const char *op_name) +{ + ksft_test_result_skip("%s failed with ENOENT. Filesystem might be buggy (9pfs?)\n", op_name); +} + uint64_t pagemap_get_entry(int fd, char *start); bool pagemap_is_softdirty(int fd, char *start); bool pagemap_is_swapped(int fd, char *start);