From: Boqun Feng <boqun.feng@gmail.com>
To: FUJITA Tomonori <fujita.tomonori@gmail.com>
Cc: a.hindborg@kernel.org, tglx@linutronix.de,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com,
tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com,
gary@garyguo.net, bjorn3_gh@protonmail.com,
benno.lossin@proton.me, a.hindborg@samsung.com,
aliceryhl@google.com, anna-maria@linutronix.de,
frederic@kernel.org, arnd@arndb.de, jstultz@google.com,
sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org,
juri.lelli@redhat.com, vincent.guittot@linaro.org,
dietmar.eggemann@arm.com, rostedt@goodmis.org,
bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
tgunders@redhat.com, me@kloenk.dev, david.laight.linux@gmail.com
Subject: Re: [PATCH v11 6/8] MAINTAINERS: rust: Add new sections for DELAY/SLEEP and TIMEKEEPING API
Date: Fri, 4 Apr 2025 09:40:06 -0700 [thread overview]
Message-ID: <Z_ALZsnwN53ZPBrB@boqun-archlinux> (raw)
In-Reply-To: <20250403.215745.2138534529135480572.fujita.tomonori@gmail.com>
On Thu, Apr 03, 2025 at 09:57:45PM +0900, FUJITA Tomonori wrote:
> On Thu, 03 Apr 2025 12:54:40 +0200
> Andreas Hindborg <a.hindborg@kernel.org> wrote:
>
> >>>> You will need to fix something because patch 2-6 removes `Ktime` ;-)
> >>>
> >>> Yea, but `Instant` is almost a direct substitution, right? Anyway, Tomo
> >>> can send a new spin and change all the uses of Ktime, or I can do it. It
> >>> should be straight forward. Either way is fine with me.
> >>
> >> `Delta`? Not `Instant`.
> >
> > It depends. Current hrtimer takes `Ktime` and supports
> > `HrTimerMode::Absolute` and `HrTimerMode::Relative`. With `Delta` and
> > `Instant` we should take `Instant` for `HrTimerMode::Absolute` and
> > `Delta` for `HrTimerMode::Relative`. The API needs to be modified a bit
> > to make that work though. Probably we need to make the start function
> > generic over the expiration type or something.
> >
If we make `HrTimerMode` a trait:
pub trait HrTimerMode {
type Expires; /* either Delta or Instant */
}
and `HrTimerPointer` generic over `HrTimerMode`:
pub trait HrTimerPointer<Mode: HrTimerMode> {
fn start(self, expires: Mode::Expires) -> HrTimerHandler<Mode>
}
then we can disallow that a Relative timer accidentally uses an Instant
or an Absolute timer accidentally uses an Delta. Of course a few other
places need to be generic, but the end result looks pretty good to me.
Regards,
Boqun
> > If you want to, you can fix that. If not, you can use `Instant` for the
> > relative case as well, and we shall interpret it as duration. Then I
> > will fix it up later. Your decision.
> >
> >> All Ktime in hrtimer are passed to hrtimer_start_range_ns(), right?
> >
> > Yes, that is where they end up.
>
> Ah, I found that __hrtimer_start_range_ns() handles ktime_t
> differently in HRTIMER_MODE_REL mode.
>
> As you said, looks like the API needs to be updated and I think that
> it's best to leave that to you. I'll just use `Instant` for all cases.
>
>
next prev parent reply other threads:[~2025-04-04 16:40 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-20 7:06 [PATCH v11 0/8] rust: Add IO polling FUJITA Tomonori
2025-02-20 7:06 ` [PATCH v11 1/8] sched/core: Add __might_sleep_precision() FUJITA Tomonori
2025-02-24 1:40 ` FUJITA Tomonori
2025-02-20 7:06 ` [PATCH v11 2/8] rust: time: Add PartialEq/Eq/PartialOrd/Ord trait to Ktime FUJITA Tomonori
2025-03-22 8:51 ` Andreas Hindborg
2025-02-20 7:06 ` [PATCH v11 3/8] rust: time: Introduce Delta type FUJITA Tomonori
2025-03-22 8:50 ` Andreas Hindborg
2025-02-20 7:06 ` [PATCH v11 4/8] rust: time: Introduce Instant type FUJITA Tomonori
2025-03-22 13:58 ` Andreas Hindborg
2025-04-03 4:40 ` FUJITA Tomonori
2025-04-03 10:41 ` Andreas Hindborg
2025-04-03 12:23 ` FUJITA Tomonori
2025-02-20 7:06 ` [PATCH v11 5/8] rust: time: Add wrapper for fsleep() function FUJITA Tomonori
2025-03-21 22:05 ` Frederic Weisbecker
2025-03-22 1:24 ` FUJITA Tomonori
2025-03-22 14:15 ` Andreas Hindborg
2025-03-22 14:10 ` Andreas Hindborg
2025-02-20 7:06 ` [PATCH v11 6/8] MAINTAINERS: rust: Add new sections for DELAY/SLEEP and TIMEKEEPING API FUJITA Tomonori
2025-03-20 19:05 ` Boqun Feng
2025-03-21 19:18 ` Andreas Hindborg
2025-03-21 20:38 ` Thomas Gleixner
2025-03-21 21:00 ` Boqun Feng
2025-03-22 2:07 ` FUJITA Tomonori
2025-03-22 12:57 ` Boqun Feng
2025-03-22 22:40 ` Andreas Hindborg
2025-03-31 14:03 ` Boqun Feng
2025-03-31 19:43 ` Andreas Hindborg
2025-04-03 8:18 ` FUJITA Tomonori
2025-04-03 10:54 ` Andreas Hindborg
2025-04-03 12:57 ` FUJITA Tomonori
2025-04-04 16:40 ` Boqun Feng [this message]
2025-04-02 14:16 ` FUJITA Tomonori
2025-04-02 16:29 ` Boqun Feng
2025-04-02 23:03 ` FUJITA Tomonori
2025-04-03 0:51 ` Boqun Feng
2025-04-03 3:02 ` FUJITA Tomonori
2025-04-03 3:17 ` Boqun Feng
2025-02-20 7:06 ` [PATCH v11 7/8] rust: Add read_poll_timeout functions FUJITA Tomonori
2025-02-20 15:04 ` Fiona Behrens
2025-02-21 11:20 ` FUJITA Tomonori
2025-03-22 16:02 ` Andreas Hindborg
2025-08-11 1:53 ` FUJITA Tomonori
2025-08-11 9:42 ` Andreas Hindborg
2025-08-14 5:53 ` FUJITA Tomonori
2025-07-28 12:44 ` Daniel Almeida
2025-07-28 12:52 ` FUJITA Tomonori
2025-07-28 12:57 ` Danilo Krummrich
2025-07-28 13:08 ` FUJITA Tomonori
2025-07-28 13:15 ` Danilo Krummrich
2025-07-28 14:13 ` Daniel Almeida
2025-07-28 14:30 ` Danilo Krummrich
2025-07-28 13:13 ` Danilo Krummrich
2025-08-02 1:42 ` FUJITA Tomonori
2025-08-02 11:06 ` Danilo Krummrich
2025-08-05 13:37 ` FUJITA Tomonori
2025-08-05 13:48 ` Danilo Krummrich
2025-08-05 13:53 ` Andrew Lunn
2025-08-05 14:03 ` Danilo Krummrich
2025-08-05 14:01 ` Daniel Almeida
2025-08-05 14:19 ` Danilo Krummrich
2025-02-20 7:06 ` [PATCH v11 8/8] net: phy: qt2025: Wait until PHY becomes ready FUJITA Tomonori
2025-02-27 17:29 ` [PATCH v11 0/8] rust: Add IO polling Daniel Almeida
2025-02-27 23:05 ` FUJITA Tomonori
2025-03-20 19:04 ` Boqun Feng
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=Z_ALZsnwN53ZPBrB@boqun-archlinux \
--to=boqun.feng@gmail.com \
--cc=a.hindborg@kernel.org \
--cc=a.hindborg@samsung.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=andrew@lunn.ch \
--cc=anna-maria@linutronix.de \
--cc=arnd@arndb.de \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=bsegall@google.com \
--cc=david.laight.linux@gmail.com \
--cc=dietmar.eggemann@arm.com \
--cc=frederic@kernel.org \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=hkallweit1@gmail.com \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=me@kloenk.dev \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=sboyd@kernel.org \
--cc=tglx@linutronix.de \
--cc=tgunders@redhat.com \
--cc=tmgross@umich.edu \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
/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;
as well as URLs for NNTP newsgroup(s).