[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191113091336.5218-4-k.konieczny@samsung.com>
Date: Wed, 13 Nov 2019 10:13:32 +0100
From: Kamil Konieczny <k.konieczny@...sung.com>
To: k.konieczny@...sung.com
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Chanwoo Choi <cw00.choi@...sung.com>,
Kamil Konieczny <k.konieczny@...tner.samsung.com>,
Krzysztof Kozlowski <krzk@...nel.org>,
Kyungmin Park <kyungmin.park@...sung.com>,
linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org,
Marek Szyprowski <m.szyprowski@...sung.com>,
MyungJoo Ham <myungjoo.ham@...sung.com>
Subject: [PATCH 3/7] devfreq: add clearing transitions stats in sysfs
Add new function trans_reset in sysfs for clearing transition
table and time in states devfreq statistics.
Signed-off-by: Kamil Konieczny <k.konieczny@...sung.com>
---
drivers/devfreq/devfreq.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index ac04b5baef70..0a88055d1362 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -1445,6 +1445,31 @@ static ssize_t trans_stat_show(struct device *dev,
}
static DEVICE_ATTR_RO(trans_stat);
+static void defvreq_stats_clear_table(struct devfreq *devfreq)
+{
+ unsigned int count = devfreq->profile->max_state;
+
+ spin_lock(&devfreq->stats_lock);
+ memset(devfreq->time_in_state, 0, count * sizeof(u64));
+ memset(devfreq->trans_table, 0, count * count * sizeof(int));
+ devfreq->last_stat_updated = get_jiffies_64();
+ devfreq->total_trans = 0;
+ spin_unlock(&devfreq->stats_lock);
+}
+
+static ssize_t trans_reset_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf,
+ size_t count)
+{
+ struct devfreq *devfreq = to_devfreq(dev);
+
+ defvreq_stats_clear_table(devfreq);
+
+ return count;
+}
+static DEVICE_ATTR_WO(trans_reset);
+
static struct attribute *devfreq_attrs[] = {
&dev_attr_governor.attr,
&dev_attr_available_governors.attr,
@@ -1455,6 +1480,7 @@ static struct attribute *devfreq_attrs[] = {
&dev_attr_min_freq.attr,
&dev_attr_max_freq.attr,
&dev_attr_trans_stat.attr,
+ &dev_attr_trans_reset.attr,
NULL,
};
ATTRIBUTE_GROUPS(devfreq);
--
2.24.0
Powered by blists - more mailing lists