[LUCID] UBUNTU: SAUCE: PM: report resume time of

Manoj Iyer manoj.iyer at canonical.com
Wed Jan 27 06:39:15 UTC 2010


Jermey/Colin,

I have been using the patch below to print resume times of device.

--- manjo

On Tue, 26 Jan 2010, Manoj Iyer wrote:

>
> The following patch reports the resume time of each device. Not sure if we
> want to submit this upstream because it will populate dmesg with lot of PM
> messages. Probably need to filter all the PM messages to kern_resume.log
> or some such file in /var/log.
>
> The following changes since commit
> 5d4092811713de51759a9d194eb78e4eb1c48822:
>   Manoj Iyer (1):
>         UBUNTU: SAUCE: PM: report resume time of each device
>
> are available in the git repository at:
>
>
> ssh://zinc.canonical.com/srv/kernel.ubuntu.com/git/manjo/ubuntu-lucid.git
> suspendresume2
>
>
> From 5d4092811713de51759a9d194eb78e4eb1c48822 Mon Sep 17 00:00:00 2001
> From: Manoj Iyer <manoj.iyer at canonical.com>
> Date: Tue, 26 Jan 2010 09:44:20 -0600
> Subject: [PATCH] UBUNTU: SAUCE: PM: report resume time of each device
>
> Report the resume time of each device.
>
> Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>
> ---
>  drivers/base/power/main.c |   23 +++++++++++++++++++++++
>  1 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> index d72d4b3..b4833d5 100644
> --- a/drivers/base/power/main.c
> +++ b/drivers/base/power/main.c
> @@ -341,6 +341,25 @@ static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info)
>  		usecs / USEC_PER_MSEC, usecs % USEC_PER_MSEC);
>  }
>
> +
> +static void device_show_time(struct device *dev, ktime_t starttime, pm_message_t state, char *info)
> +{
> +	ktime_t calltime;
> +	s64 usecs64;
> +	int usecs;
> +
> +	calltime = ktime_get();
> +	usecs64 = ktime_to_ns(ktime_sub(calltime, starttime));
> +	do_div(usecs64, NSEC_PER_USEC);
> +	usecs = usecs64;
> +	if (usecs == 0)
> +		usecs = 1;
> +	pr_info("PM: %s%s%s of drv:%s dev:%s complete after %ld.%03ld msecs\n",
> +		info ?: "", info ? " " : "", pm_verb(state.event),
> +		dev_driver_string(dev), dev_name(dev), usecs / USEC_PER_MSEC,
> +		usecs % USEC_PER_MSEC);
> +}
> +
>  /*------------------------- Resume routines -------------------------*/
>
>  /**
> @@ -354,6 +373,7 @@ static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info)
>  static int device_resume_noirq(struct device *dev, pm_message_t state)
>  {
>  	int error = 0;
> +	ktime_t starttime = ktime_get();
>
>  	TRACE_DEVICE(dev);
>  	TRACE_RESUME(0);
> @@ -364,6 +384,7 @@ static int device_resume_noirq(struct device *dev, pm_message_t state)
>  	if (dev->bus->pm) {
>  		pm_dev_dbg(dev, state, "EARLY ");
>  		error = pm_noirq_op(dev, dev->bus->pm, state);
> +		device_show_time(dev, starttime, state, "early");
>  	}
>   End:
>  	TRACE_RESUME(error);
> @@ -407,6 +428,7 @@ EXPORT_SYMBOL_GPL(dpm_resume_noirq);
>  static int device_resume(struct device *dev, pm_message_t state)
>  {
>  	int error = 0;
> +	ktime_t starttime = ktime_get();
>
>  	TRACE_DEVICE(dev);
>  	TRACE_RESUME(0);
> @@ -443,6 +465,7 @@ static int device_resume(struct device *dev, pm_message_t state)
>  			error = dev->class->resume(dev);
>  		}
>  	}
> +	device_show_time(dev, starttime, state, NULL);
>   End:
>  	up(&dev->sem);
>
> -- 
> 1.6.3.3
>
>
>
> Cheers
> --- manjo
>
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>




More information about the kernel-team mailing list