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 10E9AC021B1 for ; Thu, 20 Feb 2025 15:45:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CA394401EB; Thu, 20 Feb 2025 10:45:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 951CB4401EA; Thu, 20 Feb 2025 10:45:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7F2214401EB; Thu, 20 Feb 2025 10:45:50 -0500 (EST) 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 608964401EA for ; Thu, 20 Feb 2025 10:45:50 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 861001623A0 for ; Thu, 20 Feb 2025 15:45:47 +0000 (UTC) X-FDA: 83140748334.07.565C9DA Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf09.hostedemail.com (Postfix) with ESMTP id 7A0C414000B for ; Thu, 20 Feb 2025 15:32:35 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf09.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740065556; a=rsa-sha256; cv=none; b=lS1+5uz7ifLuYWmH0gaTsP6cdiqdwTZX4UV5LTZdbgXHwmfQhhlyXZsDwRkGFwKokOLp6k 1oqtnt2WLbq7HFp+0nSrA6MfM4QDrTa8Z8BqJG7IADhj5ZARqpPZEEir2f+pEcys3VvWPE jv/RAVg1XSm3+AN2qWGwLi6vD54tJaA= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf09.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740065556; 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=AkZYg3kMgVMPfQhdB+GlbVSogB0CRTlb3CAM1Ol36Nw=; b=L9xdm3BY+QwCiBgfXgCM6P0xTOZptNA9esRAcF/3h0BKG+l8yLF7t5X7zprRuM7q0bYyNG ZxPxLSkYkwZh6kCtI++boFPO3IjsFmPT7MJcFmszKeMLr4TWQ7dWGrGtdRDBpcIWOXTi1h GWA6a7bZaIj40g00CBKl1PbJVo+KOSk= 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 EC7BD16F3; Thu, 20 Feb 2025 07:32:51 -0800 (PST) Received: from [10.163.39.71] (unknown [10.163.39.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2E5F93F59E; Thu, 20 Feb 2025 07:32:30 -0800 (PST) Message-ID: <6d1a298f-6af9-4568-b171-cb4a83121a95@arm.com> Date: Thu, 20 Feb 2025 21:02:26 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/6] selftests/mm: Report errno when things fail To: Brendan Jackman , Lorenzo Stoakes , Andrew Morton , Shuah Khan Cc: Mateusz Guzik , linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org References: <20250220-mm-selftests-v1-0-9bbf57d64463@google.com> <20250220-mm-selftests-v1-1-9bbf57d64463@google.com> Content-Language: en-US From: Dev Jain In-Reply-To: <20250220-mm-selftests-v1-1-9bbf57d64463@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 7A0C414000B X-Rspamd-Server: rspam12 X-Stat-Signature: ji36xngwnpanfgh4umhc7u95dwscgqhd X-HE-Tag: 1740065555-733142 X-HE-Meta: U2FsdGVkX19HH+yU4le8b7COB5TbC7d0E2Xncw/gr0zvYWRx6kErmtnFiJLhhkrzRtLFIUe9geawy3HQoDzOuEwqs3uX3MZAasn4ApsCCZO0e0s0iT/bMXgsxG+dqvopk94aYP9GreYjGKAfrdO/rKw2Dd61JsIkdT+bzswSKCG29SbHtje6pilw7BhJHPsvJNBF6X1P6VumF4RIY25uFPuj4u8+iW+cgRdge8KsdKbVYzy5yU1UOpPfIHQkknHddjzRBng141lhJ/0yIiHurqpCnq/Zhk7V8e+OZt8GVTM7WdMaiqBQ8/Wab3UB096WGJ4+1O3cEi+Fwzwkb6QdILQNhqy4P9Tx//EVt013jkmOeze5/Ahb3k9PQmSyb/2lJ0pIytHqCq4yiPDVxxfs16YDvU1jVN0iuOYMZHOKcR+RSu8A1Se7aKpdviE6rtHoH+Khy1VvMbRmBjQngsAxzo1N2Sba/tiJk6EKQBy2a7QuCvs+sKHWN6zHO2u0sFG6g7s0RujP6FSpnB8EOEmlVNGO/i7pMRiZs+131MVDTy9waI6TOWtDgMfAlUcclCr7gFmmxJKmW8FN4u7hLyvYDngHFVn123e6MkCad9G6pn9/bC9A15iCCq59jQiEXNsUCa7J50qtjQD202nLAvbJH/FzWEfogY8wT9cbpjhuZBjnyhS4C5YGQNIN421eI/qCq01xH825O9ZrGdmcEMiBwYFgK4fNgEn5UX8y5hB5ctegacBDQQHNByP9xYUnCygG9Axw5yndF0vAgziLd3/Egx1Pp75u6xHt9HTnpwTqaKYctYeY8x2uXmZVjLb1Ya36jaYMinlHqriiSS46Y8+8f9E0if2/IkKtWfmDYKLqLtDRnRve97oANWcRU69GA0kgQS6U+HD0dbn+NeMSyN1GxYBsO2wyLj4AGnCsyG6HAgzLKIcluZWE0QzMdItBxXSsGZzlMXcw4w5MMcM9kEy 8UC2pGlA uA1B8VMPdnqDExTu62gNFLmqOnbqTpw8qCtFJKiUq4gBUKbbLPH2dHNiGKY4y3uhQkrZdf9XEIKQt+E7DlB9SUWEpfZMd/7Rfm+zIQ5ZHiMxjzYDigvurE6LbKPJbiYxqdU6jvMrC57yV//mRD3sJasgmzZ8jVE++aEa3 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000013, 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 20/02/25 8:33 pm, Brendan Jackman wrote: > 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. IMHO it would be even better if we reported strerror(errno). > > Signed-off-by: Brendan Jackman > --- > tools/testing/selftests/mm/gup_longterm.c | 32 +++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/tools/testing/selftests/mm/gup_longterm.c b/tools/testing/selftests/mm/gup_longterm.c > index 9423ad439a6140163bdef2974615bb86406a8c14..46a2139b3a646f6c050eb031a770f615be76c433 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 (%d)\n", errno); > return; > } > > if (fallocate(fd, 0, 0, size)) { > if (size == pagesize) > - ksft_test_result_fail("fallocate() failed\n"); > + ksft_test_result_fail("fallocate() failed (%d)\n", 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 (%d)\n", 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 (%d)\n", errno); > goto munmap; > } > /* FALLTHROUGH */ > @@ -165,18 +165,18 @@ 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 (%d)\n", 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 (%d)\n", errno); > > /* > * TODO: if the kernel ever supports long-term R/W pinning on > @@ -202,7 +202,7 @@ 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 (%d)\n", errno); > break; > } > /* > @@ -215,13 +215,13 @@ 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 (%d)\n", 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 (%d)\n", errno); > } else { > ksft_test_result(should_work, "Should have worked\n"); > io_uring_unregister_buffers(&ring); > @@ -249,7 +249,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 (%d)\n", errno); > return; > } > > @@ -266,13 +266,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 (%d)\n", errno); > return; > } > > fd = fileno(file); > if (fd < 0) { > - ksft_test_result_fail("fileno() failed\n"); > + ksft_test_result_fail("fileno() failed (%d)\n", errno); > goto close; > } > > @@ -290,12 +290,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 (%d)\n", errno); > return; > } > > if (unlink(filename)) { > - ksft_test_result_fail("unlink() failed\n"); > + ksft_test_result_fail("unlink() failed (%d)\n", errno); > goto close; > } > > @@ -317,7 +317,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 (%d)\n", errno); > return; > } > >