From: Thomas Gleixner <tglx@linutronix.de>
To: John Stultz <jstultz@google.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
Stephen Boyd <sboyd@kernel.org>,
Yury Norov <yury.norov@gmail.com>,
Bitao Hu <yaoma@linux.alibaba.com>,
Andrew Morton <akpm@linux-foundation.org>,
kernel-team@android.com, Saravana Kannan <saravanak@google.com>,
Samuel Wu <wusamuel@google.com>, Qais Yousef <qyousef@google.com>
Subject: Re: [RFC][PATCH 0/3] DynamicHZ: Configuring the timer tick rate at boot time
Date: Wed, 29 Jan 2025 09:09:02 +0100 [thread overview]
Message-ID: <87a5ba6nz5.ffs@tglx> (raw)
In-Reply-To: <CANDhNCon7mFR5b6hjFNH36ARJ+LLoNkw-=hF_ovsy83UUbRqXw@mail.gmail.com>
On Tue, Jan 28 2025 at 22:10, John Stultz wrote:
> On Tue, Jan 28, 2025 at 8:46 AM Thomas Gleixner <tglx@linutronix.de> wrote:
>> 1) Jiffies and related timer wheel interfaces
>>
>> jiffies should just go away completely and be replaced by a simple
>> millisecond counter, which is accessible in the same way as
>> jiffies today.
>>
>> That removes the bulk of HZ usage all over the place and makes the
>> usage sites simpler as the interfaces just use SI units and the
>> gazillions (~4500 to jiffies and ~1000 from jiffies) back and
>> forth conversions just go away.
>
> Yeah, this was basically where I was hoping this would allow us to go.
> I was imagining once dyn_hz was possible, we could basically fix HZ to
> 1000 internally, leaving jiffies as that 1ms counter, and let the
> actual interrupt rate be set via the dynhz default config value. Then
> iterating through all the code switching HZ usage to MSEC_PER_SEC, etc
> would be possible.
I strongly suggest to start with exactly this because it significantly
reduces the problem space and has a valuable benefit in general.
>> 3) Accounting
>>
>> The accounting has to be seperated from the jiffies advancement and
>> it has to feed the delta to the last tick in nanoseconds into the
>> accounting path, which internally operates in nanoseconds already
>> today.
>
> I'll take a look at this next, as the accounting has clearly been my
> biggest fumbling point. Keeping the per-cpu last tick times is
> probably the key change (my main concern is the extra cost of reading
> the ns time, but deriving it from 1ms jiffies counter could be an
> option), but yeah, I think this sounds like a nice direction. Thank
> you for the suggestion!
You don't need to read the time for that. The delta to the previous tick
is known already. It's the amount of nanoseconds which corresponds to
the chosen dynamic HZ value. So you can just do:
- cputime = TICK_NSEC;
+ cputime = tick_nsec;
i.e. read the variable which stores the tick length in nanoseconds, no?
Thanks,
tglx
next prev parent reply other threads:[~2025-01-29 8:09 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-28 6:32 [RFC][PATCH 0/3] DynamicHZ: Configuring the timer tick rate at boot time John Stultz
2025-01-28 6:32 ` [RFC][PATCH 1/3] time/tick: Pipe tick count down through cputime accounting John Stultz
2025-01-28 14:44 ` Thomas Gleixner
2025-01-29 4:10 ` John Stultz
2025-01-28 6:32 ` [RFC][PATCH 2/3] time/tick: Introduce a dyn_hz boot option John Stultz
2025-01-28 9:07 ` Peter Zijlstra
2025-01-28 17:29 ` John Stultz
2025-01-28 19:30 ` Peter Zijlstra
2025-01-28 6:32 ` [RFC][PATCH 3/3] Kconfig: Add CONFIG_DYN_HZ_DEFAULT to specify the default dynhz= boot option value John Stultz
2025-01-28 16:46 ` [RFC][PATCH 0/3] DynamicHZ: Configuring the timer tick rate at boot time Thomas Gleixner
2025-01-29 6:10 ` John Stultz
2025-01-29 8:09 ` Thomas Gleixner [this message]
2025-02-10 16:54 ` David Laight
2025-02-03 11:14 ` Peter Zijlstra
2025-02-10 1:14 ` Qais Yousef
2025-02-10 1:09 ` Qais Yousef
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=87a5ba6nz5.ffs@tglx \
--to=tglx@linutronix.de \
--cc=akpm@linux-foundation.org \
--cc=anna-maria@linutronix.de \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=frederic@kernel.org \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=qyousef@google.com \
--cc=rostedt@goodmis.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=wusamuel@google.com \
--cc=yaoma@linux.alibaba.com \
--cc=yury.norov@gmail.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