public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Pavel Begunkov <asml.silence@gmail.com>,
	io-uring <io-uring@vger.kernel.org>
Subject: Re: [PATCH] io_uring/register: use correct location for io_rings_layout
Date: Fri, 21 Nov 2025 06:59:38 -0700	[thread overview]
Message-ID: <50ea34b3-580d-48d9-a806-256ab6135a02@kernel.dk> (raw)
In-Reply-To: <fa3ab544-e9fd-4746-993c-a4d446a4c19a@gmail.com>

On 11/21/25 6:49 AM, Pavel Begunkov wrote:
> On 11/19/25 20:22, Jens Axboe wrote:
>> On 11/19/25 10:18 AM, Pavel Begunkov wrote:
>>> On 11/19/25 02:36, Jens Axboe wrote:
>>>> A previous consolidated the ring size etc calculations into
>>>> io_prepare_config(), but missed updating io_register_resize_rings()
>>>> correctly to use the calculated values. As a result, it ended up using
>>>> on-stack uninitialized values, and hence either failed validating the
>>>> size correctly, or just failed resizing because the sizes were random.
>>>>
>>>> This caused failures in the liburing regression tests:
>>>
>>> That made me wonder how it could possibly pass tests for me. I even
>>> made sure it was reaching the final return. Turns out the layout was
>>> 0 initialised, region creation fails with -EINVAL, and then the
>>> resizing test just silently skips sub-cases. It'd be great to have
>>> a "not supported, skip" message.
>>
>> Looks like the test runs into -EINVAL, then tries the DEFER case,
>> and then doesn't check for SKIP for that. And then it returns
>> success. I've added a commit for that now, so it'll return 77/SKIP
>> if it does skip.
>>
>> I try to avoid having tests be verbose, unless they fail. Otherwise
>> it's easy to lose information you actually want in the noise. But
>> it certainly should return T_EXIT_SKIP, when it skips!
> 
> Printing when tests are skipped was pretty useful because I
> expect a latest kernel (+configured for testing setup) to be
> to run all tests, and I'd find "test skipped" suspicious by
> default. Certainly a test infra problem, but at least it
> worked.

Depends on why they are skipped - lots of tests skip because they are
given an argument, and they don't support using an argument. When I run
tests I use a bunch of different files/devices, and then you get a lot
of:

Running test pipe.t                                                 0 sec [0]
Running test pipe.t /dev/sda                                        Skipped
Running test pipe.t /dev/nvme1n1                                    Skipped
Running test pipe.t /dev/dm-0                                       Skipped
[...]

for example. And those skips are not interesting at all. The ones that
skip because the kernel doesn't support them, those would be interesting
to dump at the bottom for a better overview.

> At some point it might be great to distinguish when it skips
> because of unsupported io_uring features from when some
> resources are not available.
> 
> On the topic, I've found this in the runner:
> 
> elif [ "${#SKIPPED[*]}" -ne 0 ] && [ -n "$TEST_GNU_EXITCODE" ]; then
>     exit 77
> else
>     echo "All tests passed"
>     exit 0
> fi
> 
> But not sure who would even define TEST_GNU_EXITCODE. It should
> be more helpful to always print skipped tests:
> 
> else
>     echo "Tests: skipped $SKIPPED"
>     echo "All tests passed"
>     exit 0
> fi

Yeah no idea who uses TEST_GNU_EXITCODE... I strongly suspect no one,
and we can just assume 77.

-- 
Jens Axboe

      reply	other threads:[~2025-11-21 13:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-19  2:36 [PATCH] io_uring/register: use correct location for io_rings_layout Jens Axboe
2025-11-19 17:18 ` Pavel Begunkov
2025-11-19 20:22   ` Jens Axboe
2025-11-21 13:49     ` Pavel Begunkov
2025-11-21 13:59       ` Jens Axboe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50ea34b3-580d-48d9-a806-256ab6135a02@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=asml.silence@gmail.com \
    --cc=io-uring@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox