From patchwork Fri Feb 21 18:25:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan Jackman X-Patchwork-Id: 13986156 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 08AE3C021B6 for ; Fri, 21 Feb 2025 18:25:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D7CE280014; Fri, 21 Feb 2025 13:25:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 55C3228000C; Fri, 21 Feb 2025 13:25:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FD74280014; Fri, 21 Feb 2025 13:25:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 1B10528000C for ; Fri, 21 Feb 2025 13:25:53 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BFAB7161E58 for ; Fri, 21 Feb 2025 18:25:52 +0000 (UTC) X-FDA: 83144780544.07.FD09FF3 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) by imf17.hostedemail.com (Postfix) with ESMTP id E774F40014 for ; Fri, 21 Feb 2025 18:25:50 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=sv8jGcUg; spf=pass (imf17.hostedemail.com: domain of 3LcW4ZwgKCN4JACKMANBGOOGLE.COMLINUX-MMKVACK.ORG@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3LcW4ZwgKCN4JACKMANBGOOGLE.COMLINUX-MMKVACK.ORG@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=1740162351; 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=hk2q4ahcZVTOKS3B3OzgKX2VwvrQ5wObjbXK4TuFM6g=; b=HqsVR+36mMPDabrMJheOHA/n11CoEyCYNV9C5ewUh04Wr0cKhqwnx41kACfRPcHeh8FS/A GbRF5ccC3f1nFZNtME6MBTJskmPAxFJCeWq48MPO8EiwUpSiA08zzgTbxs1u9Nr2wVgQkg j8BZHH4Tl7szCch+ZubqHJl4kpaCg+Q= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=sv8jGcUg; spf=pass (imf17.hostedemail.com: domain of 3LcW4ZwgKCN4JACKMANBGOOGLE.COMLINUX-MMKVACK.ORG@flex--jackmanb.bounces.google.com designates 209.85.128.73 as permitted sender) smtp.mailfrom=3LcW4ZwgKCN4JACKMANBGOOGLE.COMLINUX-MMKVACK.ORG@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740162351; a=rsa-sha256; cv=none; b=MvfOFOhx4gJSwUPc5NsbDfE8f72BnMVaDJDOLTqM8k6I2c0JpYwVxQGUbyt19OowQsYzuJ ul+ZnkTJ3bGjIoWZEsT/xjAafI+AgDZYyLB6o2T8pzxbv0QVqybBx/TNm4XjGS2x30mWr5 /ORxaJ5ODxyeVFSKW6T6bR10jXBIY8s= Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-4398e841963so24764055e9.3 for ; Fri, 21 Feb 2025 10:25:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740162349; x=1740767149; 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=hk2q4ahcZVTOKS3B3OzgKX2VwvrQ5wObjbXK4TuFM6g=; b=sv8jGcUgv/FFWbrm+iiDp131w6mcxX1x+4EheQyJZoM0WTm7ciMsZIE7zYDmIiUioI YuA/V6ECNdz+vc50wn/HzBbS0T/m6G7ob9j9ieA93tkCpt2EI0g9YMgmnAKgO6KDtBsA svjd5V3mnWtTyb0oGGBdc5Fz4P7XsmXX+Lg6JBGwlCUv1vpKKEmP1wzQSJ0F2oRNYjKE bv5jyoKnjHWnAMHY9GquG1zGk1SXj6fDTr6Te57l8/1x8Wgf6G5oBZIjr644MQa8ICTG pxAqoWmICUpHxT4+FWxi+8pML7mFTd+2pfmfMfqHtWUreji++jnq4NxvgKWCV398/Huj izIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740162349; x=1740767149; 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=hk2q4ahcZVTOKS3B3OzgKX2VwvrQ5wObjbXK4TuFM6g=; b=hGk30kKGhAwLdGPBYnn9iboMkvXpi5hGUlJz+yirMnq2zEtve/Ifnk3aNWWIWkztdo Xi42MqKFYSVUp1gS65hoFjMNs7Yh7QbuVd6KERPBhYlvLVpMxD6ee2G83vin+NV24udX 1c4uPU2Q6WX9Z19+xsm1MPx1epSLruQYfxmXCB0b8G/nAWgZWCPe5OHn+hcQRYzSJcY3 E6l6IMzqlYMdJ+TJz6sAh9kg4qnCuCjwcdv1CqQ6smLhv3jol3wSwRKSmVKWlq2VfCzO 4nZwZ8VwTPz+juHOPfV51GrRonMFXA8azdM4GQjhPy2qZIq9YvttZiNC3o15rTHuwcS5 wddg== X-Forwarded-Encrypted: i=1; AJvYcCUhye6iYXyS0kBKp2Ny9IXC7pTAVtivPluGOF4Zv78LReHCpkN70tadc9L5MGcMf/Kyn0aOBritDg==@kvack.org X-Gm-Message-State: AOJu0YxGbAlUMQS6JOFnZULbf9aQQSohYsjNj8M0u4Axlb5F1pkF+h8T m5zZwwslour9O/A07/MDjVscBo+8IgJ1355eYgdjK854PgzkfbzB0ba7aO6SvOm0VPsyZ6sEH8g XLCHn3Fw7xA== X-Google-Smtp-Source: AGHT+IEEX+9NDAYtaEsuvzkkpt2t6wfcS1DgyAfislLJA+1+8RZByMs7UTp84Gy/Woac1f/+GF5PHTZ0HNJ1aQ== X-Received: from wmsp4.prod.google.com ([2002:a05:600c:1d84:b0:439:942c:b180]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:3b09:b0:439:9e13:2dd7 with SMTP id 5b1f17b1804b1-439aeae1c7emr34111985e9.2.1740162349573; Fri, 21 Feb 2025 10:25:49 -0800 (PST) Date: Fri, 21 Feb 2025 18:25:40 +0000 In-Reply-To: <20250221-mm-selftests-v2-0-28c4d66383c5@google.com> Mime-Version: 1.0 References: <20250221-mm-selftests-v2-0-28c4d66383c5@google.com> X-Mailer: b4 0.15-dev Message-ID: <20250221-mm-selftests-v2-1-28c4d66383c5@google.com> Subject: [PATCH v2 1/9] 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-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: E774F40014 X-Stat-Signature: xb94syqds49y4k15rxuq771bjcrsiffh X-Rspam-User: X-HE-Tag: 1740162350-226707 X-HE-Meta: U2FsdGVkX19+yXDYSmDDMQwbbx/dsKSVuMFIOpCLKM2HgdgQMcdkDXINtJwIf2WFGLT4Z79unZZ2xcv0XUNCsnmPdE19aN5d7P8s8UvmthRb4KqZjDHG732/oApPsUPYXZ9eVoyAIpXG6sKLA512EZqXRH3YbbuvHJfudjZb65HU06pXf+il+iKgyCq+3ZeLm9agtzts0sLvVP2N0+rzo74z8s4sDDpdN0M9scWDZz87+SVkPGZrCOeupF+driq4nrX6ZCgkYSYQ6t3KkLTWhGyXF3h8b1c6I0SS9AXT/2UrsyhaBSHFIgp6KsAoQ0AZmJ1iznnaF6K5DBnMM5w/28EgZft4at3LwtLl/yyMwEwHj9bE/DJJ+00N38dCpzBIQjwpKKaUPRsnpmcRrQ6i6T3zAB/YD/kwqmiczs3i9u+lvxglQ5dpW6/eMKb2X+mNwuTp6A+eIJsq+iFdCz+76zQP48jdrLHG0P5kXJps7T67jjJGYJQVBXBCNRwSlVYqCMx0k/sWf8Yjh0/r22haFp/HrA3aNXIZ8MDLpV+tekFWoa3Q05GaK5AWtuZSnG5r/l88QCHwQuyT+nDKqfKCG9r/8CUf7fUHQAW8aEPUDt9Bx1SF3fpz/QOEQ8mrwY0O9+58tsZlSSIMqd+WEYYcPS8tCP0eePZ+0t+OM3SAF4lCCEDxwIBUAo/x2RgylkFdJxQHA3DYy8v4xCl4bH5Ni4KpQMoTdFhjLv6etiEXeVGfEJIoJKIe5MVOTxfMmbndFIrFgepe3rvSOKlFYH5i12crn8BY3hq2bXOS+eihzoz88VfiSCFqCMFW2KUYWQqHsJ6NBPIvDlTMHrBdxvObd5uRY7I9Xafw7/zbqh5nneE+JfhBSvwzZkpRqJw9EIImgcY52U6LGrYffXYj+P8S/hrox0KXRdGFIgm93n5GFlvN2iqzfd/wtJPszgwH4n+J4eNrlnFaVjl9AATCYwa Hnrix2tP QDF4uyc55OaHSbL4/pzRXlgB0R+Mr3Q2ssPFEwoaLScn4k8n94KjxViE+Eq0TtHxIpWOxhvRt9WLB3bGi7SQxaOJ4rX28Sm9oN3Fgyirho7GjDoBnO++wyZFnVKTDYNeHzl0E7GdMRoJzjxEFaAxHLvqOQFGoaQP04LVxvBEkNST3Dn3oUpD7DvScB3G84XWcca9ptPmI0XidDzQfB/98LpX26IhIjztdnw4P7fAUJzQcyenkoHF4RXJs6LQ14LN7JFYtiAvmLHz4GIfjxsfWLak3O6TnUTN6Ttno2MSIDMw1WSSdESxEYprTRbOfOb/tcg0ng5XUooXDf7s3qd/owwbjeL0rJMliJzZBGOxVrmdUqnf4KJApLiCZD6LySKdsIwqq0C6b08XHDt+dwg0aZfkAXi3ZApMbBvCscWj5QCMGoys1Sjo/l2xbpHl2NPHSwXV+8q1wefw9iqWVkuKcQJ5otutvrDJDVXtrh5059m4nlOonJe+hPYEf50432Y3upAFPDsNN2lxP/V2+GehyYGLxd0uzT0rhU3jNm88OTr0Pa/VUNfmRZP7itBuZNdB0Ed0oNbv8rcFW60+QPFMZmCyArbOLU71BmBlu X-Bogosity: Ham, tests=bogofilter, spamicity=0.004549, 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. 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..879e9e4e8cce8127656fabe098abf7db5f6c5e23 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(errno)); 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(errno)); } 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; }