From patchwork Tue Mar 11 13:18:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan Jackman X-Patchwork-Id: 14011863 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 B17FAC28B30 for ; Tue, 11 Mar 2025 13:18:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B45A5280003; Tue, 11 Mar 2025 09:18:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AA675280001; Tue, 11 Mar 2025 09:18:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9016F280003; Tue, 11 Mar 2025 09:18:21 -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 67F9C280001 for ; Tue, 11 Mar 2025 09:18:21 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 97615C1EE0 for ; Tue, 11 Mar 2025 13:18:23 +0000 (UTC) X-FDA: 83209324086.13.08C83E7 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) by imf29.hostedemail.com (Postfix) with ESMTP id BF31C12000C for ; Tue, 11 Mar 2025 13:18:21 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zZk7fgco; spf=pass (imf29.hostedemail.com: domain of 3HDjQZwgKCBM2tv35t6uz77z4x.v75416DG-553Etv3.7Az@flex--jackmanb.bounces.google.com designates 209.85.128.74 as permitted sender) smtp.mailfrom=3HDjQZwgKCBM2tv35t6uz77z4x.v75416DG-553Etv3.7Az@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=1741699101; 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=q3kjR3e+tUhw3L1FQAPtkpKMwUmzOI7e4dVWjhqVqwM=; b=S3MIVsHwHRaLjldftG08XY3cV2lypk+L8/L50pNFt+tSTdjF8Bh+NPPoAF/X9PyZEoH2lA mg9BVkxJrimvMQKoMyxt1SNJzKccOnKZrzdqZLVRMHJw8+37112/EBqkSHLXrlSRTxRgiZ 5f/10efotc4goAX6XVLUpzLy3brnpeo= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zZk7fgco; spf=pass (imf29.hostedemail.com: domain of 3HDjQZwgKCBM2tv35t6uz77z4x.v75416DG-553Etv3.7Az@flex--jackmanb.bounces.google.com designates 209.85.128.74 as permitted sender) smtp.mailfrom=3HDjQZwgKCBM2tv35t6uz77z4x.v75416DG-553Etv3.7Az@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741699101; a=rsa-sha256; cv=none; b=Md/UElxaOmlAzqrGPgewdqO29gL15CV00cEoppO2F00MEr1hO9ojBNs8C6LZ5wBujQ5cP7 fqKWhTcDldOeZuft4B54goawTvgF+dQYpcyK3O1xOzCqLvreeEhzeaVb4fEbrhuTVqIjYL pF1w4esgNiKOjjOTXnHRBcISmtt3vO4= Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-43d01024089so11528785e9.1 for ; Tue, 11 Mar 2025 06:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741699100; x=1742303900; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=q3kjR3e+tUhw3L1FQAPtkpKMwUmzOI7e4dVWjhqVqwM=; b=zZk7fgco9ONPqotAAyV4wQ7o0vxMKr47PTtEALKbZD0enjKrFG3cSk7c0UwVD5mPhh Jyjwy6AL/VcVy6reTnBCL6x1fmqMjZFoqKxSIpP1A9KIoWQ/jOAmY9e3DR7nwdiaOJS4 vEcZBGQolH4BhMWlpSIR1m+HP2SISeFKB+uacw1oqKzj9aAWbSeFQ+tKnwB4c8Ng3+XX isKadWXNmci60Swnl0TAGOvXCQcVoxkfKOXSKPDdGBjJasz5S+T3H5oPv0nQalvB2Vir xHq59wYtWM8UkLo+RUjHidj1o7CFbZfCsQFG+4l91dGYpzIx4poB4rxY5gW2zDSg9+gd INVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741699100; x=1742303900; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=q3kjR3e+tUhw3L1FQAPtkpKMwUmzOI7e4dVWjhqVqwM=; b=rYpSdHIe3zFXYz8sIZnsIQVZn58sTBdE1vu3eUao6wvDMbnk1Z0IcevCnkE1qgjfci 9PgKJqJOZESKtKlE6snomAF49vr1FayVxEqIiAFBvFjF+BO5v4kiEl+KYMpsHQxckjvo tbhk+0nyTLozrLAX0PhFKvYx15czduCCFC7QiCrNeZLYmFgh1XMCXkrYigru+MHfWGS4 r1gahuzcEBePCvHsvqELDLjK6Sa9oCGe0FJICRJAcrjqWhcYpP8ir0RIVZPx6qE5y/RS lLZvoXlvRcm5MWmXosSxVgxptGmELrGKTD8U+uNvkssZULzfYdryR9aFJEoWMR6C8ocv ellQ== X-Forwarded-Encrypted: i=1; AJvYcCWIUtA6uR7r9QZsr6uYXRJe+a4pomhAACGhkdqsujeGEeFopCVv5sbTjtFs0Lm7CZj+7dX4RpmI5A==@kvack.org X-Gm-Message-State: AOJu0Yxz2YurJL8zbFI46t1T1ahdsC9D4QXl3etNeco1yiUQ64y42Ga7 z8TU9rSJneoG0F1izI23RA64c5pJRJZozGpPndXbPE/SFX1yvtq5lCbFreZ095tNrwaIgGDnXOi MfCxvc1p9WQ== X-Google-Smtp-Source: AGHT+IFvDSGF/OHbPFKrTNFDJv2bYNbhXrjsIZlG+nsyMMEqyV04VNqP84+SWfbxxSYLZ4nKYbR3gmw1XGhYsg== X-Received: from wmpz16.prod.google.com ([2002:a05:600c:a10:b0:43c:ee49:c14d]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:3ba3:b0:43c:fcbc:968c with SMTP id 5b1f17b1804b1-43cfcbc97d3mr87744455e9.7.1741699100416; Tue, 11 Mar 2025 06:18:20 -0700 (PDT) Date: Tue, 11 Mar 2025 13:18:12 +0000 In-Reply-To: <20250311-mm-selftests-v4-0-dec210a658f5@google.com> Mime-Version: 1.0 References: <20250311-mm-selftests-v4-0-dec210a658f5@google.com> X-Mailer: b4 0.14.2 Message-ID: <20250311-mm-selftests-v4-1-dec210a658f5@google.com> Subject: [PATCH v4 01/12] selftests/mm: Report errno when things fail in gup_longterm From: Brendan Jackman To: Lorenzo Stoakes , Andrew Morton , Shuah Khan Cc: Dev Jain , linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Brendan Jackman X-Rspam-User: X-Rspamd-Queue-Id: BF31C12000C X-Stat-Signature: 4hhuggu7as54i8343jpjqqr5p9h7zwgp X-Rspamd-Server: rspam09 X-HE-Tag: 1741699101-964563 X-HE-Meta: U2FsdGVkX19oQ5BGsKBUoov2Vfwm2PTgoe2qC+LBzKna9axwQ9KZF2lyhlOCcKV2PycHbk/P8Go1Bj6Dt+JJIA72hQ6eig4g9rfluf4SwvrWMA89jLKtlvbR9gbYCZbZEJ1rWikI1nxyJFKsWyT6h4wNZPoHgiwCurYdcw7DoLYbT59j8Tq8wbfHjvI9yG5KiLXDgafjCu+fJfbGixiMyO2SQAhl/sd0MdPg1V2muOugwHmyveFe30RyvFpfoqbFqn0kdg9tGX3aU5h3raXE6XCEiQUoUcceKwFMNJikeTR4WHBtjMnptU7vS1j9VKhhsnflQS9WfxhWpHxR4Q3T5u2CA4UhYlm+ujqTI6/VI5bIg3ALKXdornhpkVdPard3mJC205qV95zHJ0lCnlmezfAPmrITk3wTUygbClrkhiT1nYuDw5isSYUA4kUp4iDboEGE/g5kSOLBybrWuBpfFCIIhjx8sPrkSIU5ONgs1jMEh9YrZmCQ4KaQoVeCfsITXV9EygMZ20YU+X5Ikbpl19Eeaw1Kjw11b6pEgYc2JqtpXdZtXY+5sXOLdwn9t8Mlw1KJgaoWbXzJurECChI8pYUrIHcXPghKqR8oBqDelE0djqafVM+S/boatn6PCphzUw+/DCmij+jN8HBumPswG2MSBm5L3fpNcgiQaXxqN0wnnZAbjMe6m5gDDaBw6eW0wJFP111ofXlm+Ob/F/MVj535FMYPxXGVgCfzy218pkdnvX2+UPNRHedVn2elI7E7arRZVFx3JnGZStL7ieab3viQe5BzfOe4kxxtPJAfM9OJVnkGZpwYJQ0gbpojDRu/ZTA+ZSDqTpbSm+sQVminLa5gfOJ8O9lBVFjo2HZJE4pHKoRjtkafZkohq7D1KkIXz/9fQ2hfAvYijjoeLPvOm7Eb3IqPEg6lXYJxZPyvXXk2RVgVV8Ic+uS8mIdK0LBTRENKVf8sTHTuwDx/2IY LM+mElKI CU7rYrFAp532QzLfCR8u7e6Q81DEjM4Y3n+U5y4gEO/IN3TY9nO6lfrtRe11ykgbQMiDWF7jlHpkgzuigDPZvK5G9fsojc5xnwxOZnufJ2AlZhESQJhtPHN1VofD1qC7HTBwxHSYmH1BvSDI3eVi7t6O8XE3oAg9wJHe3vPNF+v3aLFMzYTOJ7Ae+2RoA48Ru92iAOqCXxRs29ic/Q9QE3RCxN533eNuAB9CFgxQ8+KlqbXoS+22XGPXLdchXDHTOHmV12rbQ7UTXiRXTxWztsYH+v+SRdYytE60la2QM2rH/ZX+xP3DTMeTi3vDEx0r8zgS1ljgbtRM9s+lMv6L4BUsxL3+9bRuafnhH+odxy8fbmsWlVgI8D49XbqiN40byNQ+Qgzs0G92PVF6MJNGEz4N1wa3hphb+799Wq5SoP0Uh7eKjwSz3rfrvWnSRzUrrURODwIvxUXZ3yzTna1Jb5F0MPYER4EDWSt2/k2dMOFssW1Bj3gHUHbN++SBSy8syKZypw+PrcxK7F/opp0IOqOeF53weWE3sjuDfKR6BuDqN1qSTDRUI+UaCnnPachAfz5LX+HW6XwWwol+sU/WzCe+tdYUdcutvYlnGEK6QzyKp44uqtBJrSvcs9xYBdxaC2utBHSpQnHUj9xB4Plw1Ru+CS/M1FvhbMQb5 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000911, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Just reporting failure doesn't tell you what went wrong. This can fail in different ways so report errno to help the reader get started debugging. Reviewed-by: Dev Jain Signed-off-by: Brendan Jackman --- tools/testing/selftests/mm/gup_longterm.c | 37 ++++++++++++++++++------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tools/testing/selftests/mm/gup_longterm.c b/tools/testing/selftests/mm/gup_longterm.c index 9423ad439a6140163bdef2974615bb86406a8c14..15335820656b1c143b440b8a1065a025378e22a2 100644 --- a/tools/testing/selftests/mm/gup_longterm.c +++ b/tools/testing/selftests/mm/gup_longterm.c @@ -96,13 +96,13 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) int ret; if (ftruncate(fd, size)) { - ksft_test_result_fail("ftruncate() failed\n"); + ksft_test_result_fail("ftruncate() failed (%s)\n", strerror(errno)); return; } if (fallocate(fd, 0, 0, size)) { if (size == pagesize) - ksft_test_result_fail("fallocate() failed\n"); + ksft_test_result_fail("fallocate() failed (%s)\n", strerror(errno)); else ksft_test_result_skip("need more free huge pages\n"); return; @@ -112,7 +112,7 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) shared ? MAP_SHARED : MAP_PRIVATE, fd, 0); if (mem == MAP_FAILED) { if (size == pagesize || shared) - ksft_test_result_fail("mmap() failed\n"); + ksft_test_result_fail("mmap() failed (%s)\n", strerror(errno)); else ksft_test_result_skip("need more free huge pages\n"); return; @@ -130,7 +130,7 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) */ ret = mprotect(mem, size, PROT_READ); if (ret) { - ksft_test_result_fail("mprotect() failed\n"); + ksft_test_result_fail("mprotect() failed (%s)\n", strerror(errno)); goto munmap; } /* FALLTHROUGH */ @@ -165,18 +165,20 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) args.flags |= rw ? PIN_LONGTERM_TEST_FLAG_USE_WRITE : 0; ret = ioctl(gup_fd, PIN_LONGTERM_TEST_START, &args); if (ret && errno == EINVAL) { - ksft_test_result_skip("PIN_LONGTERM_TEST_START failed\n"); + ksft_test_result_skip("PIN_LONGTERM_TEST_START failed (EINVAL)n"); break; } else if (ret && errno == EFAULT) { ksft_test_result(!should_work, "Should have failed\n"); break; } else if (ret) { - ksft_test_result_fail("PIN_LONGTERM_TEST_START failed\n"); + ksft_test_result_fail("PIN_LONGTERM_TEST_START failed (%s)\n", + strerror(errno)); break; } if (ioctl(gup_fd, PIN_LONGTERM_TEST_STOP)) - ksft_print_msg("[INFO] PIN_LONGTERM_TEST_STOP failed\n"); + ksft_print_msg("[INFO] PIN_LONGTERM_TEST_STOP failed (%s)\n", + strerror(errno)); /* * TODO: if the kernel ever supports long-term R/W pinning on @@ -202,7 +204,8 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) /* Skip on errors, as we might just lack kernel support. */ ret = io_uring_queue_init(1, &ring, 0); if (ret < 0) { - ksft_test_result_skip("io_uring_queue_init() failed\n"); + ksft_test_result_skip("io_uring_queue_init() failed (%s)\n", + strerror(-ret)); break; } /* @@ -215,13 +218,15 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared) /* Only new kernels return EFAULT. */ if (ret && (errno == ENOSPC || errno == EOPNOTSUPP || errno == EFAULT)) { - ksft_test_result(!should_work, "Should have failed\n"); + ksft_test_result(!should_work, "Should have failed (%s)\n", + strerror(errno)); } else if (ret) { /* * We might just lack support or have insufficient * MEMLOCK limits. */ - ksft_test_result_skip("io_uring_register_buffers() failed\n"); + ksft_test_result_skip("io_uring_register_buffers() failed (%s)\n", + strerror(-ret)); } else { ksft_test_result(should_work, "Should have worked\n"); io_uring_unregister_buffers(&ring); @@ -249,7 +254,7 @@ static void run_with_memfd(test_fn fn, const char *desc) fd = memfd_create("test", 0); if (fd < 0) { - ksft_test_result_fail("memfd_create() failed\n"); + ksft_test_result_fail("memfd_create() failed (%s)\n", strerror(errno)); return; } @@ -266,13 +271,13 @@ static void run_with_tmpfile(test_fn fn, const char *desc) file = tmpfile(); if (!file) { - ksft_test_result_fail("tmpfile() failed\n"); + ksft_test_result_fail("tmpfile() failed (%s)\n", strerror(errno)); return; } fd = fileno(file); if (fd < 0) { - ksft_test_result_fail("fileno() failed\n"); + ksft_test_result_fail("fileno() failed (%s)\n", strerror(errno)); goto close; } @@ -290,12 +295,12 @@ static void run_with_local_tmpfile(test_fn fn, const char *desc) fd = mkstemp(filename); if (fd < 0) { - ksft_test_result_fail("mkstemp() failed\n"); + ksft_test_result_fail("mkstemp() failed (%s)\n", strerror(errno)); return; } if (unlink(filename)) { - ksft_test_result_fail("unlink() failed\n"); + ksft_test_result_fail("unlink() failed (%s)\n", strerror(errno)); goto close; } @@ -317,7 +322,7 @@ static void run_with_memfd_hugetlb(test_fn fn, const char *desc, fd = memfd_create("test", flags); if (fd < 0) { - ksft_test_result_skip("memfd_create() failed\n"); + ksft_test_result_skip("memfd_create() failed (%s)\n", strerror(errno)); return; }