From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "Jassi Brar" <jassisinghbrar@gmail.com>,
"Jason-JH Lin (林睿祥)" <Jason-JH.Lin@mediatek.com>
Cc: "linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"Singo Chang (張興國)" <Singo.Chang@mediatek.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"chunkuang.hu@kernel.org" <chunkuang.hu@kernel.org>,
"Nancy Lin (林欣螢)" <Nancy.Lin@mediatek.com>,
Project_Global_Chrome_Upstream_Group
<Project_Global_Chrome_Upstream_Group@mediatek.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>
Subject: Re: [PATCH 2/2] mailbox: mtk-cmdq: Move pm_runimte_get and put to mbox_chan_ops API
Date: Wed, 19 Jun 2024 10:18:50 +0200 [thread overview]
Message-ID: <1f815ff8-2b7a-48de-8b47-0bc9b3cb67ab@collabora.com> (raw)
In-Reply-To: <CABb+yY1L+YGjf6O9UgPYkS2gWAdo=7QoojSAUNWC_8o7XtZQSg@mail.gmail.com>
Il 18/06/24 17:59, Jassi Brar ha scritto:
> On Tue, Jun 18, 2024 at 3:42 AM Jason-JH Lin (林睿祥)
> <Jason-JH.Lin@mediatek.com> wrote:
>>
>> On Mon, 2024-06-17 at 13:18 -0500, Jassi Brar wrote:
>>>
> ......
>
>>> As in, how often and long are the "channel idle" periods? And when
>>> active, how many transfers/sec ?
>> Is there any debug logs in mailbox can measure this?
>>
>> This mailbox channel is use to configure display hardware in every
>> VSYNC, so the channel idle periods may be less than 16.66ms.
>>
>> It should call rx_callback() before VACTIVE, but sometimes it will be
>> dropped by mbox_flush() if the new message is coming.
>>
>>> I see every TX is acked by one RX packet. How long is the typical gap
>>> between a TX and its ack?
>>
>> Typical gap between a TX and its ack is less than 16.66ms.
>>
> So basically the usecase is driving some display at 60Hz. And I
> believe the display is driven
> continuously for at least some minutes ?
> If so, RPM between xfers is not really in effect because the
> autosuspend delay is 100ms while you
> get() it every 16.66ms. So all that is happening is some variables
> changed under a spinlock.
> I think you should consider get/put RPM in cmdq_mbox_startup() and
> cmdq_mbox_shutdown().
>
> Thanks
With at least MediaTek (but surely more than just mtk), a system that is idling
while having display ON doesn't mean that the display is continuously refreshed
by the CPU and with CMDQ messaging.
For example, when static content is displayed on screen, the CMDQ mailbox never
gets shut down, but no communication happens for a relatively long time; the
overhead of actually shutting down the mailbox and setting it back up would be
increasing latency in an unacceptable manner.
This is why I opted for autosuspend - it's only bringing down certain clocks for
the CMDQ HW, adding up a bit of power saving to the mix which, for some use cases
such as mobile devices with relatively small batteries, is definitely important.
I'll also briefly (and only briefly) mention that 120Hz displays are already a
common thing and in this case the gap between TX and ACK is ~8.33ms instead, let
alone that displays with a framerate of more than 120Hz also do exist even though
they're less common.
All of the above describes a few of the reasons why autosuspend is a good choice
here, instead of a shutdown->startup flow.
And again - I can place some bets that PM would also be applicable to SoCs from
other vendors as well, with most probably different benefits (but still with some
power related benefits!) compared to MediaTek.
....And that's the reason why I think that implementing a way to cleanly perform
this kind-of-aggressive power management in mailboxes is something that needs to
be done.
Cheers,
Angelo
next prev parent reply other threads:[~2024-06-19 8:18 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-14 4:01 [PATCH 0/2] Fix sleeping function called from invalid context Jason-JH.Lin
2024-06-14 4:01 ` [PATCH 1/2] mailbox: Add power_get/power_put API to mbox_chan_ops Jason-JH.Lin
2024-06-14 11:35 ` Markus Elfring
2024-06-18 6:26 ` Jason-JH Lin (林睿祥)
2024-06-14 16:23 ` kernel test robot
2024-06-14 16:55 ` kernel test robot
2024-06-14 18:51 ` kernel test robot
2024-06-17 12:39 ` Dan Carpenter
2024-06-14 4:01 ` [PATCH 2/2] mailbox: mtk-cmdq: Move pm_runimte_get and put to mbox_chan_ops API Jason-JH.Lin
2024-06-17 18:18 ` Jassi Brar
2024-06-18 8:42 ` Jason-JH Lin (林睿祥)
2024-06-18 15:59 ` Jassi Brar
2024-06-19 8:18 ` AngeloGioacchino Del Regno [this message]
2024-06-19 15:38 ` Jassi Brar
2024-06-20 6:32 ` Jason-JH Lin (林睿祥)
2024-06-20 14:39 ` Jassi Brar
2024-06-24 11:29 ` AngeloGioacchino Del Regno
2024-06-24 17:45 ` Jassi Brar
2024-06-25 3:40 ` Jason-JH Lin (林睿祥)
2024-06-25 4:21 ` Jassi Brar
2024-06-26 9:32 ` Jason-JH Lin (林睿祥)
2024-06-28 3:40 ` Jassi Brar
2024-07-03 16:41 ` Jason-JH Lin (林睿祥)
2024-07-03 19:06 ` Jassi Brar
2024-07-05 6:11 ` Jason-JH Lin (林睿祥)
2024-07-05 16:43 ` Jassi Brar
2024-07-11 2:00 ` Jason-JH Lin (林睿祥)
2024-07-11 3:47 ` Jassi Brar
2024-07-12 7:23 ` Jason-JH Lin (林睿祥)
2024-07-15 9:45 ` Jason-JH Lin (林睿祥)
2024-07-17 16:17 ` Jassi Brar
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=1f815ff8-2b7a-48de-8b47-0bc9b3cb67ab@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=Jason-JH.Lin@mediatek.com \
--cc=Nancy.Lin@mediatek.com \
--cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
--cc=Singo.Chang@mediatek.com \
--cc=chunkuang.hu@kernel.org \
--cc=jassisinghbrar@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@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