From: Andreas Hindborg <a.hindborg@kernel.org>
To: "Lyude Paul" <lyude@redhat.com>
Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
"Boqun Feng" <boqun.feng@gmail.com>,
"Frederic Weisbecker" <frederic@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Anna-Maria Behnsen" <anna-maria@linutronix.de>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>
Subject: Re: [PATCH 2/6] rust: hrtimer: Add HrTimerCallbackContext and ::forward()
Date: Wed, 09 Apr 2025 09:49:38 +0200 [thread overview]
Message-ID: <87lds993l9.fsf@kernel.org> (raw)
In-Reply-To: <0baafb97ec786c01c1d44270dd211537105922b6.camel@redhat.com> (Lyude Paul's message of "Tue, 08 Apr 2025 17:55:54 -0400")
"Lyude Paul" <lyude@redhat.com> writes:
> On Tue, 2025-04-08 at 13:47 +0200, Andreas Hindborg wrote:
>> "Lyude Paul" <lyude@redhat.com> writes:
>>
>> > With Linux's hrtimer API, certain functions require we either acquire
>> > proper locking to call specific methods - or that we call said methods from
>> > the context of the timer callback. hrtimer_forward() is one of these
>> > functions, so we start by adding a new HrTimerCallbackContext type which
>> > provides a way of calling these methods that is inaccessible outside of
>> > hrtimer callbacks.
>>
>> Based on tglx comment, we should be able to call this function if the
>> timer is stopped and we have a unique ownership of the timer. Do you
>> want to add that? If not, could you add a note about this somewhere?
>
>
> Happy to! So, I think if we were to add a function for this I assume we would
> want something like this?
>
> fn forward(&mut self, now: Instant, interval: Duration) -> u64 {
> self.cancel();
> /* Do actual forward stuff here */
> }
>
> Of course with some documentation pointing out that this function will stop
> the timer if required.
Yes, something like that. My first thought was to check if the timer was
running and return `Err` if that is the case. But it might be more
simple to just call `cancel`. What do you think?
Best regards,
Andreas Hindborg
next prev parent reply other threads:[~2025-04-09 7:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <f6qilrOyPKqI41LxEG6tS9lHm1gKZ1uxYBqonJEDGUzfNeg7JTLx0ygMtZCymEQv07RW8nGgFqhspMslAh8hAg==@protonmail.internalid>
2025-04-02 21:40 ` [PATCH 0/6] rust/hrtimer: Various hrtimer + time additions Lyude Paul
2025-04-02 21:40 ` [PATCH 1/6] rust: time: Add Ktime::from_ns() Lyude Paul
2025-04-02 21:40 ` [PATCH 2/6] rust: hrtimer: Add HrTimerCallbackContext and ::forward() Lyude Paul
2025-04-03 11:25 ` Thomas Gleixner
2025-04-08 11:47 ` Andreas Hindborg
2025-04-08 21:55 ` Lyude Paul
2025-04-09 7:49 ` Andreas Hindborg [this message]
2025-04-09 16:58 ` Lyude Paul
2025-04-09 17:15 ` Lyude Paul
2025-04-10 6:21 ` Andreas Hindborg
2025-04-11 20:48 ` Lyude Paul
2025-04-02 21:40 ` [PATCH 3/6] rust: hrtimer: Add HrTimerClockBase Lyude Paul
2025-04-08 11:58 ` Andreas Hindborg
2025-04-02 21:40 ` [PATCH 4/6] rust: hrtimer: Add HrTimerClockBase::time() Lyude Paul
2025-04-08 12:00 ` Andreas Hindborg
2025-04-09 18:39 ` Lyude Paul
2025-04-02 21:40 ` [PATCH 5/6] rust: hrtimer: Add HrTimerCallbackContext::forward_now() Lyude Paul
2025-04-08 12:05 ` Andreas Hindborg
2025-04-02 21:40 ` [PATCH 6/6] rust: hrtimer: Add HrTimerCallback::expires() Lyude Paul
2025-04-08 12:16 ` Andreas Hindborg
2025-04-08 11:51 ` [PATCH 0/6] rust/hrtimer: Various hrtimer + time additions Andreas Hindborg
2025-04-08 21:47 ` Lyude Paul
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=87lds993l9.fsf@kernel.org \
--to=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=anna-maria@linutronix.de \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=frederic@kernel.org \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tmgross@umich.edu \
/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.