All of lore.kernel.org
 help / color / mirror / Atom feed
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.
> 
> 

  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 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.