All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <cw00.choi@samsung.com>
To: Kamil Konieczny <k.konieczny@samsung.com>
Cc: Andrew Donnellan <ajd@linux.ibm.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	"cpgs (cpgs@samsung.com)" <cpgs@samsung.com>
Subject: Re: [PATCH v3 2/3] devfreq: add clearing transitions stats
Date: Fri, 6 Dec 2019 11:01:46 +0900	[thread overview]
Message-ID: <1019298652.01575597781442.JavaMail.epsvc@epcpadp2> (raw)
In-Reply-To: <20191205145527.26117-3-k.konieczny@samsung.com>

On 12/5/19 11:55 PM, Kamil Konieczny wrote:
> Add clearing transition table and time in states devfreq statistics
> by writing 0 (zero) to trans_stat file in devfreq sysfs. An example use
> is like following:
> 
> echo 0 > /sys/class/devfreq/devfreqX/trans_stat
> 
> Signed-off-by: Kamil Konieczny <k.konieczny@samsung.com>
> ---
> Changes in v3:
> - add checks for zero in input and clear stats only when zero is written
>   to trans_stats
> - change documentation of trans_stat in sysfs
> 
> Changes in v2:
> - instead of creating new sysfs file, add new functionality to trans_stat
>   and clear stats when anything is writen to it
> ---
>  Documentation/ABI/testing/sysfs-class-devfreq | 11 +++++---
>  drivers/devfreq/devfreq.c                     | 27 ++++++++++++++++++-
>  2 files changed, 33 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/ABI/testing/sysfs-class-devfreq b/Documentation/ABI/testing/sysfs-class-devfreq
> index 75897e2fde43..9758eb85ade3 100644
> --- a/Documentation/ABI/testing/sysfs-class-devfreq
> +++ b/Documentation/ABI/testing/sysfs-class-devfreq
> @@ -55,12 +55,15 @@ What:		/sys/class/devfreq/.../trans_stat
>  Date:		October 2012
>  Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
>  Description:
> -		This ABI shows the statistics of devfreq behavior on a
> -		specific device. It shows the time spent in each state and
> -		the number of transitions between states.
> +		This ABI shows or clears the statistics of devfreq behavior
> +		on a specific device. It shows the time spent in each state
> +		and the number of transitions between states.
>  		In order to activate this ABI, the devfreq target device
>  		driver should provide the list of available frequencies
> -		with its profile.
> +		with its profile. If need to reset the statistics of devfreq
> +		behavior on a specific device, enter 0(zero) to 'trans_stat'
> +		as following:
> +			echo 0 > /sys/class/devfreq/.../trans_stat
>  
>  What:		/sys/class/devfreq/.../userspace/set_freq
>  Date:		September 2011
> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
> index abecadeb3dc2..218eb64d7f28 100644
> --- a/drivers/devfreq/devfreq.c
> +++ b/drivers/devfreq/devfreq.c
> @@ -1478,7 +1478,32 @@ static ssize_t trans_stat_show(struct device *dev,
>  					devfreq->total_trans);
>  	return len;
>  }
> -static DEVICE_ATTR_RO(trans_stat);
> +
> +static ssize_t trans_stat_store(struct device *dev,
> +				struct device_attribute *attr,
> +				const char *buf, size_t count)
> +{
> +	struct devfreq *df = to_devfreq(dev);
> +	unsigned int cnt = df->profile->max_state;
> +	int err, value;
> +
> +	if (cnt == 0)
> +		return count;
> +
> +	err = kstrtoint(buf, 10, &value);
> +	if (err || value != 0)
> +		return count;

Better returning -EINVAL to inform the error of user.
I changed it by myself.

> +
> +	mutex_lock(&df->lock);
> +	memset(df->time_in_state, 0, cnt * sizeof(u64));

Changed the size calculation way as following by myself:

    memset(df->time_in_state, 0, (df->profile->max_state *                  
					sizeof(*devfreq->time_in_state)));  

> +	memset(df->trans_table, 0, cnt * cnt * sizeof(int));

Changed the size calculation way with array3_size() as following by myself:
	memset(df->trans_table, 0, array3_size(sizeof(unsigned int),            
					df->profile->max_state,                 
					df->profile->max_state));     


> +	df->last_stat_updated = get_jiffies_64();
> +	df->total_trans = 0;

Changed the init sequence as following by myself.
	df->total_trans = 0;
	df->last_stat_updated = get_jiffies_64();

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics


  reply	other threads:[~2019-12-06  2:03 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20191205145542eucas1p2b39536c9c186d5656f39d214baa32670@eucas1p2.samsung.com>
2019-12-05 14:55 ` [PATCH v3 0/3] devfreq: improve devfreq statistics counting Kamil Konieczny
2019-12-05 14:55   ` [PATCH v3 1/3] devfreq: change time stats to 64-bit Kamil Konieczny
2019-12-06  1:37     ` Chanwoo Choi
2019-12-05 14:55   ` [PATCH v3 2/3] devfreq: add clearing transitions stats Kamil Konieczny
2019-12-06  2:01     ` Chanwoo Choi [this message]
2019-12-05 14:55   ` [PATCH v3 3/3] devfreq: move statistics to separate struct Kamil Konieczny
2019-12-06  5:30     ` Chanwoo Choi
2019-12-06  5:33     ` [PATCH v4] PM / devfreq: Move statistics to separate struct devfreq_stats Chanwoo Choi
2019-12-06  5:36       ` Chanwoo Choi
2019-12-06  2:18   ` [PATCH v4] PM / devfreq: add clearing transitions stats Chanwoo Choi
2019-12-06  2:19     ` Chanwoo Choi

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=1019298652.01575597781442.JavaMail.epsvc@epcpadp2 \
    --to=cw00.choi@samsung.com \
    --cc=ajd@linux.ibm.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=cpgs@samsung.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=k.konieczny@samsung.com \
    --cc=krzk@kernel.org \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=rafael.j.wysocki@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.