All of lore.kernel.org
 help / color / mirror / Atom feed
From: FUJITA Tomonori <tomo@flapping.org>
To: a.hindborg@kernel.org
Cc: tomo@flapping.org, gary@garyguo.net, ojeda@kernel.org,
	acourbot@nvidia.com, aliceryhl@google.com,
	anna-maria@linutronix.de, bjorn3_gh@protonmail.com,
	boqun@kernel.org, dakr@kernel.org, daniel.almeida@collabora.com,
	frederic@kernel.org, jstultz@google.com, lossin@kernel.org,
	lyude@redhat.com, sboyd@kernel.org, tamird@kernel.org,
	tglx@kernel.org, tmgross@umich.edu, work@onurozkan.dev,
	rust-for-linux@vger.kernel.org, fujita.tomonori@gmail.com
Subject: Re: [PATCH 0/4] Fix forward()/expires() racing with concurrent arming
Date: Tue, 18 Aug 2026 20:21:11 +0900 (JST)	[thread overview]
Message-ID: <20260818.202111.221982706607091751.tomo@flapping.org> (raw)
In-Reply-To: <8733wbajj0.fsf@t14s.mail-host-address-is-not-set>

On Tue, 18 Aug 2026 11:02:27 +0200
Andreas Hindborg <a.hindborg@kernel.org> wrote:

>> perf and CFS bandwidth have a flag as well as a lock. The flag is "do
>> not arm while armed", which is the same rule the types enforce
>> here. rtc and the softlockup watchdog look like they cancel first and
>> then start instead. None of them arms a timer that is active, so I
>> would rather the abstraction did not allow it either. Does that seem
>> reasonable?
> 
> I am fine with preventing starting a timer that is Started or Running,
> but I am not liking the `UniqueArc` requirement.
> 
> I have a use case in `rnull` where I have to start a timer behind an
> `Arc` with no way to obtain a `UniqueArc`, so I would prefer if that use
> case keeps on working. Without this, I would have to allocate a box and
> put it behind a lock, leading to double indirection.

Before the UniqueArc requirement, I would like to check which timer
you have in mind? The bandwidth timer, the per-command timer, or
something else? The two seem to need different things, so I would
rather not guess.

For the bandwidth timer I do not see where the handle would live, and that
is independent of UniqueArc. start() returns a handle that cancels the
timer when it is dropped, so it has to be kept somewhere, and the current
hrtimer API is the same. queue_rq() only gets a shared borrow of the queue
data, and the handle owns an Arc<T>, so putting it inside T means T holds a
refcount on itself and is never freed.


  reply	other threads:[~2026-08-18 11:21 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-13 13:48 [PATCH 0/4] Fix forward()/expires() racing with concurrent arming FUJITA Tomonori
2026-08-13 13:48 ` [PATCH v1 1/4] rust: hrtimer: Introduce HrTimerArc to make arming exclusive FUJITA Tomonori
2026-08-13 13:48 ` [PATCH v1 2/4] rust: hrtimer: Introduce HrTimerPin " FUJITA Tomonori
2026-08-13 13:48 ` [PATCH v1 3/4] rust: hrtimer: Restrict expires() to safe contexts FUJITA Tomonori
2026-08-13 13:48 ` [PATCH v1 4/4] rust: hrtimer: Make HrTimer repr(transparent) FUJITA Tomonori
2026-08-13 14:16 ` [PATCH 0/4] Fix forward()/expires() racing with concurrent arming Gary Guo
2026-08-13 23:47   ` FUJITA Tomonori
2026-08-14  0:54     ` Gary Guo
2026-08-14 13:48       ` FUJITA Tomonori
2026-08-14 14:24         ` Gary Guo
2026-08-18  0:56           ` FUJITA Tomonori
2026-08-17 15:40         ` Gary Guo
2026-08-18  1:35           ` FUJITA Tomonori
2026-08-17 15:26   ` Andreas Hindborg
2026-08-18  2:26     ` FUJITA Tomonori
2026-08-18  9:02       ` Andreas Hindborg
2026-08-18 11:21         ` FUJITA Tomonori [this message]
2026-08-18 11:59           ` Andreas Hindborg
2026-08-19 13:01             ` FUJITA Tomonori
2026-08-20  9:00               ` Andreas Hindborg
2026-08-20  9:21                 ` FUJITA Tomonori
2026-08-20 12:34                   ` Andreas Hindborg
2026-08-20 12:53                     ` FUJITA Tomonori
2026-08-21  7:13                       ` Andreas Hindborg
2026-08-21  9:53                         ` FUJITA Tomonori
2026-08-24 10:44                           ` Andreas Hindborg
2026-08-24 10:59                             ` Miguel Ojeda
2026-08-24 11:07                             ` 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=20260818.202111.221982706607091751.tomo@flapping.org \
    --to=tomo@flapping.org \
    --cc=a.hindborg@kernel.org \
    --cc=acourbot@nvidia.com \
    --cc=aliceryhl@google.com \
    --cc=anna-maria@linutronix.de \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun@kernel.org \
    --cc=dakr@kernel.org \
    --cc=daniel.almeida@collabora.com \
    --cc=frederic@kernel.org \
    --cc=fujita.tomonori@gmail.com \
    --cc=gary@garyguo.net \
    --cc=jstultz@google.com \
    --cc=lossin@kernel.org \
    --cc=lyude@redhat.com \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=sboyd@kernel.org \
    --cc=tamird@kernel.org \
    --cc=tglx@kernel.org \
    --cc=tmgross@umich.edu \
    --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.