From: "Gary Guo" <gary@garyguo.net>
To: "FUJITA Tomonori" <tomo@flapping.org>, <gary@garyguo.net>,
<markus.probst@posteo.de>
Cc: <aliceryhl@google.com>, <dakr@kernel.org>, <ojeda@kernel.org>,
<a.hindborg@kernel.org>, <acourbot@nvidia.com>,
<bjorn3_gh@protonmail.com>, <boqun@kernel.org>,
<daniel.almeida@collabora.com>, <lossin@kernel.org>,
<tamird@kernel.org>, <tmgross@umich.edu>, <work@onurozkan.dev>,
<linux-serial@vger.kernel.org>, <rust-for-linux@vger.kernel.org>,
<fujita.tomonori@gmail.com>
Subject: Re: [PATCH v1] rust: serdev: use Delta<Jiffy> for timeouts
Date: Thu, 01 Oct 2026 03:27:39 +0100 [thread overview]
Message-ID: <DLT5AOYLEZXE.C2HPEP6WSP33@garyguo.net> (raw)
In-Reply-To: <20261001.102816.848418815165006267.tomo@flapping.org>
On Thu Oct 1, 2026 at 2:28 AM BST, FUJITA Tomonori wrote:
> On Thu, 01 Oct 2026 01:39:51 +0100
> "Gary Guo" <gary@garyguo.net> wrote:
>
>> On Thu Oct 1, 2026 at 1:29 AM BST, FUJITA Tomonori wrote:
>>> On Wed, 30 Sep 2026 14:52:50 +0100
>>> "Gary Guo" <gary@garyguo.net> wrote:
>>>
>>>> I think the API should ideally use `Option<Delta<Jiffies>>` for this case, and
>>>> use `None` to represent indefinite wait.
>>>
>>> For read_poll_timeout(), where a timeout of 0 means "never time out"
>>> in C, we did not take Option for the timeout. Alice's comment [1]:
>>>
>>> | Another thing is the `timeout_delta` option. I would just have
>>> | written it as two methods, one that takes a timeout and one that
>>> | doesn't. That way, callers that don't need a timeout do not need to
>>> | handle timeout errors. (Do we have any users without a timeout? If
>>> | not, maybe just remove the Option.)
>>>
>>> serdev is in the same situation. Do we want an API that uses None for
>>> "never" here?
>>
>> I don't like the "using 0" to mean forever, because 0 has a more sensible
>> meaning -- which is just do a poll and don't wait.
>
> Fully agreed.
>
>> This one doesn't even return a result at all, so `Option` sounds reasonable.
>
> That's true for wait_until_sent(), but write_all() returns a result
> and it can be ETIMEDOUT.
>
>> Alternatively, just use `MAX_SCHEDULE_TIMEOUT` (i.e.
>> `Delta::from_jiffies(isize::MAX)`). We can perhaps add a `Delta::MAX` for this.
>
> I don't think Delta::<Jiffy>::MAX is a good idea. Whether the maximum
> value means an indefinite wait depends on the function. For example,
> it doesn't for Queue::enqueue_delayed().
Whether it means infinite or not depends on the function, but that's still mean
"MAX", no?
Also, it's not like serdev_device_wait_until_sent use it to mean infinite
either. I randomly sampled two wait_until_sent impls and they just use the
timeout in arithmetic, so it's just a very long wait.
Best,
Gary
next prev parent reply other threads:[~2026-10-01 2:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 4:13 [PATCH v1] rust: serdev: use Delta<Jiffy> for timeouts FUJITA Tomonori
2026-09-30 4:21 ` sashiko-bot
2026-09-30 12:59 ` Markus Probst
2026-09-30 13:52 ` Gary Guo
2026-09-30 14:07 ` Markus Probst
2026-10-01 0:29 ` FUJITA Tomonori
2026-10-01 0:39 ` Gary Guo
2026-10-01 1:28 ` FUJITA Tomonori
2026-10-01 2:27 ` Gary Guo [this message]
2026-10-01 4:26 ` FUJITA Tomonori
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=DLT5AOYLEZXE.C2HPEP6WSP33@garyguo.net \
--to=gary@garyguo.net \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=fujita.tomonori@gmail.com \
--cc=linux-serial@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=markus.probst@posteo.de \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tamird@kernel.org \
--cc=tmgross@umich.edu \
--cc=tomo@flapping.org \
--cc=work@onurozkan.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.