[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <64aedc190a7f3fc91967f42b2ad7ca244df63f89.camel@mediatek.com>
Date: Mon, 7 Nov 2022 09:41:29 +0000
From: Jian-Min Liu (劉建旻)
<Jian-Min.Liu@...iatek.com>
To: "peterz@...radead.org" <peterz@...radead.org>
CC: "dietmar.eggemann@....com" <dietmar.eggemann@....com>,
"mingo@...nel.org" <mingo@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"patrick.bellasi@...bug.net" <patrick.bellasi@...bug.net>,
"adharmap@...cinc.com" <adharmap@...cinc.com>,
"qais.yousef@....com" <qais.yousef@....com>,
Jonathan JMChen (陳家明)
<Jonathan.JMChen@...iatek.com>,
"vdonnefort@...gle.com" <vdonnefort@...gle.com>,
"qperret@...gle.com" <qperret@...gle.com>,
"morten.rasmussen@....com" <morten.rasmussen@....com>,
"vincent.guittot@...aro.org" <vincent.guittot@...aro.org>
Subject: Re: [RFC PATCH 0/1] sched/pelt: Change PELT halflife at runtime
Hi,
On Thu, 2022-09-29 at 11:47 +0200, Peter Zijlstra wrote:
> Because it messes up the order in which people normally read text.
> Why is top-posting such a bad thing?
> Top-posting.
> What is the most annoying thing in e-mail?
>
Sorry for top-posting...
> On Tue, Sep 20, 2022 at 10:07:59PM +0800, Jian-Min Liu wrote:
> >
> > Update some test data in android phone to support switching PELT
> > HL
> > is helpful functionality.
> >
> > We switch runtime PELT HL during runtime by difference scenario
> > e.g.
> > pelt8 in playing game, pelt32 in camera video. Support runntime
> > switching PELT HL is flexible for different workloads.
> >
> > the below table show performance & power data points:
> >
> > -----------------------------------------------------------------
> > ----
> > --| | PELT
> > halflife |
> > > |-------------------------------------------
> > > ---|
> > > | 32 | 16 | 8
> > > |
> > > |-------------------------------------------
> > > ---|
> > > | avg min avg | avg min avg |
> > > avg min avg|
> > > Scenarios | fps fps pwr | fps fps pwr |
> > > fps fps pwr|
> > > ---------------------------------------------------------------
> > > ------|
> > > HOK game 60fps | 100 100 100 | 105 *134* 102 | 104 *152*
> > > 106|
> > > HOK game 90fps | 100 100 100 | 101 *114* 101 | 103 *129*
> > > 105|
> > > HOK game 120fps | 100 100 100 | 102 *124* 102 | 105 *134*
> > > 105|
>
> You have your min and avg fps columns mixed up, your min cannot be
> larger
> than avg.
>
> Also, with min fps mostly above the actual screen fps, who cares. And
> seriously 120fps on a phone !?!? for worse power usage! you gotta be
> kidding me.
>
> And I googled this game; it is some top-down tactical thing with
> real-time combat (as opposed to turn-based) (DOTA like I suppose),
> 60 fps locked should be plenty fine.
>
> > > FHD video rec. 60fps | 100 100 100 | n/a n/a n/a |
> > > 100 100 103|
> > > Camera snapshot | 100 100 100 | n/a n/a n/a |
> > > 100 100 102|
>
> Mostly I think you've demonstrated that none of this is worth it.
>
> > -----------------------------------------------------------------
> > ------
> >
> > HOK ... Honour Of Kings, Video game
> > FHD ... Full High Definition
> > fps ... frame per second
> > pwr ... power consumption
> >
> > table values are in %
>
> Oh... that's bloody insane; that's why none of it makes sense.
>
>
> How is any of that an answer to:
>
> "They want; I want an explanation of what exact problem is fixed
> how ;-)"
>
> This is just random numbers showing poking the number has some
> effect;
> it has zero explaination of why poking the number changes the
> workload
> and if that is in fact the right way to go about solving that
> particular
> issue.
Sorry that the data wasn't clear to understand. I try again with
absolute FPS numbers and some additional explanation as well as a
summary why we need to have the PELT halflife tunable a runtime.
HOK* 60FPS
+-------+-----------------------------------------+
| | avg. FPS | min. FPS | power |
+-------+--------+-------+-------+-------+--------+
|kernel | value |diff(%)| value |diff(%)| diff(%)|
+-------+--------+-------+-------+-------+--------+
|pelt_1 | 54.1 | 0.0% | 21.8 | 0.0% | 0.0% |
+-------+--------+-------+-------+-------+--------+
|pelt_2 | 56.9 | 5.2% | 29.2 | 34.0% | 2.2% |
+-------+--------+-------+-------+-------+--------+
|pelt_4 | 56.6 | 4.5% | 33.2 | 52.4% | 6.3% |
+-------+--------+-------+-------+-------+--------+
*Honour Of Kings, video game
Test methodology:
We choose 60FPS in the game setup. Android's systrace (similar to
ftrace) then provides the real FPS from which we take the average and
minimum value.
Sorry, but we can't share absolute numbers for power from our test
device since this is still considered sensitive information.
FHD 60fps video recording
+-------+-----------------------------------------+
| | avg. FPS | min. FPS | power |
+-------+--------+-------+-------+-------+--------+
|kernel | value |diff(%)| value |diff(%)| diff(%)|
+-------+--------+-------+-------+-------+--------+
|pelt_1 | 60.0 | 0.0% | 60.0 | 0.0% | 0.0% |
+-------+--------+-------+-------+-------+--------+
|pelt_4 | 60.0 | 0.0% | 60.0 | 0.0% | 2.1% |
+-------+--------+-------+-------+-------+--------+
To summarize, we need a smaller PELT halflife to reach higher avg. FPS
and min. FPS values for video gaming to achieve a smoother game-play
experience even when it comes with slightly higher power consumption.
Especially the improvement in min. FPS is important here to minimize
situations in which the game otherwise would stutter.
Since not all use cases profit from this behaviour (e.g. video
recording) the PELT halflife should be tunable at runtime.
Powered by blists - more mailing lists