From: Igor Paunovic <royalnet026@gmail.com>
To: Jiaxing Hu <gahing@gahingwoo.com>
Cc: Igor Paunovic <royalnet026@gmail.com>,
tomeu@tomeuvizoso.net, boogiepop@gmx.com, nicolas@ndufresne.ca,
linux-rockchip@lists.infradead.org,
dri-devel@lists.freedesktop.org
Subject: Re: [RFC] accel/rocket: DVFS on RK3588 - a hardware constraint, and some numbers
Date: Fri, 4 Sep 2026 14:46:55 +0200 [thread overview]
Message-ID: <20260904124659.25971-1-royalnet026@gmail.com> (raw)
In-Reply-To: <20260904110853.85150-1-gahing@gahingwoo.com>
Hi Jiaxing,
> Your rows are one inference thread with a bit-exact oracle, so they
> cannot see this class at all. Before the OPP table is settled, run
> the oracle with all three cores loaded at 900 and 1000 MHz on 850 mV.
You were right, and it stopped me sending. The series was packed and
checked and I was an hour from the send command. Every number I have
posted, including the ones in this thread, came from a single inference
thread. Not one of them could have seen what you found.
So I built the test I did not have. Three concurrent clients, each
checking its own output bit-exact, on the two top rates of the table:
900 MHz, rail 800 mV 3 x 199 inf/s, 598 total, all bit-exact
1000 MHz, rail 850 mV 3 x 204 inf/s, 611 total, all bit-exact
Single-client control on the same rates: 232 and 240 inf/s. So the
aggregate is 2.57x and 2.55x of one client, which is the part that
makes the bit-exact result worth anything - the three cores really were
computing at the same time, not queueing behind one. Kernel log clean
through all four passes. Voltages read back from vdd_npu_s0 during the
run, put there by the OPP core, not by me.
One honest note on how I proved the overlap, because I got it wrong
first. I had the test sample runtime_status of the three cores and
report how many were active. It said three of three, one hundred per
cent - and it said that with a single client too, because this series
holds every core resumed while the clock is raised. It measures power
state, not work. The aggregate throughput is the real evidence; the
sampler was telling me what I wanted to hear.
So: on RK3588 the answer to your question is that it holds, at the
voltages the table names. What I cannot tell you is where the edge is.
I have not run 1000 MHz at 800 mV to find out how much margin 850 is
buying, and I would rather not guess in a commit message.
> whatever the table ends up as, it needs the voltage column with the
> rate: a rate without its rail is what mainline has today, and it is
> what corrupts.
The table carries it: 200 to 700 MHz at 700 mV, 800 at 750, 900 at 800,
1000 at 850, which is Rockchip's own table for this part. Your four
days are now a paragraph in my cover letter with your name on it, since
that measurement is the reason the test exists.
> On RK3576 an assigned-clock-rates on the SCMI clock in the NPU node
> hangs the board before the console comes up
That is worth more than the question I was going to ask about it. I
have kept assigned-clock-rates on all three RK3588 nodes and listed it
as an open question, on the grounds that of_clk_set_defaults() runs on
every probe over the shared clock and could quietly lower a raised
rate - which I have not managed to make happen. Your board says the
property can do considerably worse than that. I will say so in the
cover and let the maintainers decide whether it goes.
Two other things while I have you.
I am sending a fix ahead of the series: rocket_remove() decrements
num_cores while find_core_for_dev() searches only that far, so the last
core is never found on unbind, num_cores never reaches zero, and a
rebind writes rdev->cores[3] on a three-element array. Silent in
mainline today; UBSAN caught it once devfreq started walking the array
from a worker. It has a Fixes: tag and Cc: stable. You may want it on
RK3576 too, where the same code runs with two cores.
And the small one I have been sitting on. My series carries the
clocks-by-name patch as 1/7 so it applies on its own, and that copy
still has your Signed-off-by from v11. You are not in the delivery path
of my series, so by submitting-patches.rst it does not belong on that
copy and I would drop it there - your Reviewed-by is the credit that
matters and it stays, on both copies. On the v11 copy your sign-off is
correct and I would not touch it. It is your name, so I would rather
ask than decide.
Igor
next prev parent reply other threads:[~2026-09-04 12:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-01 13:16 [RFC] accel/rocket: DVFS on RK3588 - a hardware constraint, and some numbers Igor Paunovic
2026-08-01 19:32 ` Jiaxing Hu
2026-08-02 12:04 ` Igor Paunovic
2026-08-15 18:24 ` Tomeu Vizoso
2026-08-17 18:22 ` Nicolas Dufresne
2026-08-18 7:27 ` Igor Paunovic
2026-08-18 12:12 ` Jonas Karlman
2026-08-18 12:30 ` Jonas Karlman
2026-08-19 5:52 ` Igor Paunovic
2026-08-19 9:40 ` Jonas Karlman
2026-08-19 12:59 ` Igor Paunovic
2026-08-19 16:20 ` Jonas Karlman
2026-08-19 18:48 ` Igor Paunovic
2026-08-19 20:07 ` Hüseyin BIYIK
2026-09-02 11:04 ` Igor Paunovic
2026-09-03 9:16 ` Igor Paunovic
[not found] ` <2f88072c-6aa3-4294-a35d-722d1c7a405c@email.android.com>
2026-09-03 18:51 ` Igor Paunovic
2026-09-04 11:08 ` Jiaxing Hu
2026-09-04 12:46 ` Igor Paunovic [this message]
2026-09-05 5:13 ` Jiaxing Hu
2026-09-05 7:01 ` Igor Paunovic
2026-08-19 18:47 ` Nicolas Dufresne
2026-09-04 11:19 ` Jiaxing Hu
[not found] <DKDOBW9CJ2Y3.10EEIZDTXPYJZ@cknow-tech.com>
2026-08-01 14:40 ` Igor Paunovic
2026-08-01 16:29 ` Diederik de Haas
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=20260904124659.25971-1-royalnet026@gmail.com \
--to=royalnet026@gmail.com \
--cc=boogiepop@gmx.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gahing@gahingwoo.com \
--cc=linux-rockchip@lists.infradead.org \
--cc=nicolas@ndufresne.ca \
--cc=tomeu@tomeuvizoso.net \
/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