From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
MyungJoo Ham <myungjoo.ham@samsung.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
Chanwoo Choi <cw00.choi@samsung.com>,
Jonathan Hunter <jonathanh@nvidia.com>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v5 00/20] More improvements for Tegra30 devfreq driver
Date: Tue, 30 Jul 2019 19:22:16 +0300 [thread overview]
Message-ID: <20190730162236.6063-1-digetx@gmail.com> (raw)
Hello,
This series addresses some additional review comments that were made by
Thierry Reding to [1], makes several important changes to the driver,
fixing excessive interrupts activity, and adds new features. In the end
I'm proposing myself as a maintainer for the Tegra devfreq drivers.
[1] https://lore.kernel.org/lkml/0fb50eb1-a173-1756-6889-2526a10ac707@gmail.com/T/
Changelog:
v5: Addressed review comments that were made by Chanwoo Choi to v4 by
squashing few patches, dropping some questionable patches, rewording
comments to the code, restructuring the code and etc.
These patches are now dropped from the series:
PM / devfreq: tegra30: Use tracepoints for debugging
PM / devfreq: tegra30: Inline all one-line functions
The interrupt-optimization patches are squashed into a single patch:
PM / devfreq: tegra30: Reduce unnecessary interrupts activity
because it's better to keep the optimizations as a separate change and
this also helps to reduce code churning, since the code changes depend
on a previous patch in order to stay cleaner.
Fixed a lockup bug that I spotted recently, which is caused by a
clk-notifier->cpufreq_get()->clk_set_rate() sequence. Now a non-blocking
variant of CPU's frequency retrieving is used, i.e. cpufreq_quick_get().
Further optimized the CPUFreq notifier by postponing the delayed
updating in accordance to the polling interval, this actually uncovered
the above lockup bug.
Implemented new minor driver feature in the new patch:
PM / devfreq: tegra30: Support variable polling interval
v4: Added two new patches to the series:
PM / devfreq: tegra30: Synchronize average count on target's update
PM / devfreq: tegra30: Increase sampling period to 16ms
The first patch addresses problem where governor could get stuck due
to outdated "average count" value which is snapshoted by ISR and there
are cases where manual update of the value is required.
The second patch is just a minor optimization.
v3: Added support for tracepoints, replacing the debug messages.
Fixed few more bugs with the help of tracepoints.
New patches in this version:
PM / devfreq: tegra30: Use tracepoints for debugging
PM / devfreq: tegra30: Optimize CPUFreq notifier
PM / devfreq: tegra30: Optimize upper consecutive watermark selection
PM / devfreq: tegra30: Optimize upper average watermark selection
PM / devfreq: tegra30: Include appropriate header
Some of older patches of this series also got some extra minor polish.
v2: Added more patches that are cleaning driver's code further and
squashing another kHz conversion bug.
The patch "Rework frequency management logic" of the v1 series is now
converted to "Set up watermarks properly" because I found some problems
in the original patch and then realized that there is no need to change
the logic much. So the logic mostly preserved and only got improvements.
The series is based on the today's linux-next (25 Jun) and takes into
account minor changes that MyungJoo Ham made to the already queued
patches from the first batch [1].
Dmitry Osipenko (20):
PM / devfreq: tegra30: Change irq type to unsigned int
PM / devfreq: tegra30: Keep interrupt disabled while governor is
stopped
PM / devfreq: tegra30: Handle possible round-rate error
PM / devfreq: tegra30: Drop write-barrier
PM / devfreq: tegra30: Set up watermarks properly
PM / devfreq: tegra30: Tune up boosting thresholds
PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
PM / devfreq: tegra30: Ensure that target freq won't overflow
PM / devfreq: tegra30: Use kHz units uniformly in the code
PM / devfreq: tegra30: Reduce unnecessary interrupts activity
PM / devfreq: tegra30: Use CPUFreq notifier
PM / devfreq: tegra30: Move clk-notifier's registration to governor's
start
PM / devfreq: tegra30: Reset boosting on startup
PM / devfreq: tegra30: Don't enable consecutive-down interrupt on
startup
PM / devfreq: tegra30: Constify structs
PM / devfreq: tegra30: Include appropriate header
PM / devfreq: tegra30: Increase sampling period to 16ms
PM / devfreq: tegra30: Define ACTMON_DEV_CTRL_STOP
PM / devfreq: tegra30: Support variable polling interval
PM / devfreq: tegra20/30: Add Dmitry as a maintainer
MAINTAINERS | 9 +
drivers/devfreq/tegra30-devfreq.c | 706 +++++++++++++++++++++++-------
2 files changed, 555 insertions(+), 160 deletions(-)
--
2.22.0
next reply other threads:[~2019-07-30 16:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-30 16:22 Dmitry Osipenko [this message]
2019-07-30 16:22 ` [PATCH v5 01/20] PM / devfreq: tegra30: Change irq type to unsigned int Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 02/20] PM / devfreq: tegra30: Keep interrupt disabled while governor is stopped Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 03/20] PM / devfreq: tegra30: Handle possible round-rate error Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 04/20] PM / devfreq: tegra30: Drop write-barrier Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 05/20] PM / devfreq: tegra30: Set up watermarks properly Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 06/20] PM / devfreq: tegra30: Tune up boosting thresholds Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 07/20] PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 08/20] PM / devfreq: tegra30: Ensure that target freq won't overflow Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 09/20] PM / devfreq: tegra30: Use kHz units uniformly in the code Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 10/20] PM / devfreq: tegra30: Reduce unnecessary interrupts activity Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 11/20] PM / devfreq: tegra30: Use CPUFreq notifier Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 12/20] PM / devfreq: tegra30: Move clk-notifier's registration to governor's start Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 13/20] PM / devfreq: tegra30: Reset boosting on startup Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 14/20] PM / devfreq: tegra30: Don't enable consecutive-down interrupt " Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 15/20] PM / devfreq: tegra30: Constify structs Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 16/20] PM / devfreq: tegra30: Include appropriate header Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 17/20] PM / devfreq: tegra30: Increase sampling period to 16ms Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 18/20] PM / devfreq: tegra30: Define ACTMON_DEV_CTRL_STOP Dmitry Osipenko
2019-07-31 0:37 ` Chanwoo Choi
2019-07-31 10:55 ` Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 19/20] PM / devfreq: tegra30: Support variable polling interval Dmitry Osipenko
2019-07-30 16:22 ` [PATCH v5 20/20] PM / devfreq: tegra20/30: Add Dmitry as a maintainer Dmitry Osipenko
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=20190730162236.6063-1-digetx@gmail.com \
--to=digetx@gmail.com \
--cc=cw00.choi@samsung.com \
--cc=jonathanh@nvidia.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=myungjoo.ham@samsung.com \
--cc=thierry.reding@gmail.com \
--cc=tomeu.vizoso@collabora.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;
as well as URLs for NNTP newsgroup(s).