Re: [PATCH] acpi: Eliminate us to pm ticks conversion in common path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Is this one better?

Yes, but the patch I'm really looking forward to
removed /proc/acpi/processor/*/power altogether...

applied,
thanks,
-Len Brown, Intel Open Source Technology Center

> 
> acpi_enter_[simple|bm] routines does us to pm tick conversion on every
> idle wakeup and the value is only used in /proc/acpi display. We can
> store the time in us and convert it into pm ticks before printing instead and
> avoid the conversion in the common path.
> 
> Signed-off-by: Venkatesh Pallipadi <venki@xxxxxxxxxx>
> ---
>  drivers/acpi/processor_idle.c |   15 +++++----------
>  1 files changed, 5 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 2e8c27d..71c9608 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -80,7 +80,7 @@ module_param(nocst, uint, 0000);
>  static unsigned int latency_factor __read_mostly = 2;
>  module_param(latency_factor, uint, 0644);
>  
> -static s64 us_to_pm_timer_ticks(s64 t)
> +static u64 us_to_pm_timer_ticks(s64 t)
>  {
>  	return div64_u64(t * PM_TIMER_FREQUENCY, 1000000);
>  }
> @@ -731,10 +731,10 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
>  
>  		seq_puts(seq, "demotion[--] ");
>  
> -		seq_printf(seq, "latency[%03d] usage[%08d] duration[%020llu]\n",
> +		seq_printf(seq, "latency[%03d] usage[%08d] duration[%020Lu]\n",
>  			   pr->power.states[i].latency,
>  			   pr->power.states[i].usage,
> -			   (unsigned long long)pr->power.states[i].time);
> +			   us_to_pm_timer_ticks(pr->power.states[i].time));
>  	}
>  
>        end:
> @@ -861,7 +861,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
>  	ktime_t  kt1, kt2;
>  	s64 idle_time_ns;
>  	s64 idle_time;
> -	s64 sleep_ticks = 0;
>  
>  	pr = __get_cpu_var(processors);
>  
> @@ -906,8 +905,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
>  	idle_time = idle_time_ns;
>  	do_div(idle_time, NSEC_PER_USEC);
>  
> -	sleep_ticks = us_to_pm_timer_ticks(idle_time);
> -
>  	/* Tell the scheduler how much we idled: */
>  	sched_clock_idle_wakeup_event(idle_time_ns);
>  
> @@ -918,7 +915,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
>  	cx->usage++;
>  
>  	lapic_timer_state_broadcast(pr, cx, 0);
> -	cx->time += sleep_ticks;
> +	cx->time += idle_time;
>  	return idle_time;
>  }
>  
> @@ -940,7 +937,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
>  	ktime_t  kt1, kt2;
>  	s64 idle_time_ns;
>  	s64 idle_time;
> -	s64 sleep_ticks = 0;
>  
>  
>  	pr = __get_cpu_var(processors);
> @@ -1026,7 +1022,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
>  	idle_time = idle_time_ns;
>  	do_div(idle_time, NSEC_PER_USEC);
>  
> -	sleep_ticks = us_to_pm_timer_ticks(idle_time);
>  	/* Tell the scheduler how much we idled: */
>  	sched_clock_idle_wakeup_event(idle_time_ns);
>  
> @@ -1037,7 +1032,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
>  	cx->usage++;
>  
>  	lapic_timer_state_broadcast(pr, cx, 0);
> -	cx->time += sleep_ticks;
> +	cx->time += idle_time;
>  	return idle_time;
>  }
>  
> -- 
> 1.7.0.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux