Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1210945
| From | Adrian Hunter <adrian.hunter@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH V2] perf: x86: Improve accuracy of perf/sched clock |
| Date | 2015-08-21 08:50 +0200 |
| Message-ID | <pZOjf-4fE-15@gated-at.bofh.it> (permalink) |
| References | <pRks2-4ju-1@gated-at.bofh.it> <pZDQS-5Z9-33@gated-at.bofh.it> |
| Organization | Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki |
On 20/08/15 22:31, Thomas Gleixner wrote:
> On Wed, 29 Jul 2015, Adrian Hunter wrote:
>> @@ -239,6 +239,8 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
>> unsigned long long tsc_now, ns_now;
>> struct cyc2ns_data *data;
>> unsigned long flags;
>> + u64 mult;
>> + u32 shft = 32;
>>
>> local_irq_save(flags);
>> sched_clock_idle_sleep_event();
>> @@ -256,12 +258,17 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
>> * time function is continuous; see the comment near struct
>> * cyc2ns_data.
>> */
>> - data->cyc2ns_mul =
>> - DIV_ROUND_CLOSEST(NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR,
>> - cpu_khz);
>> - data->cyc2ns_shift = CYC2NS_SCALE_FACTOR;
>> + mult = (u64)NSEC_PER_MSEC << 32;
>> + mult += cpu_khz / 2;
>> + do_div(mult, cpu_khz);
>> + while (mult > U32_MAX) {
>> + mult >>= 1;
>> + shft -= 1;
>> + }
>
> This is an open coded variant of clocks_calc_mult_shift(). Can we
> please use that one?
Sure. clocks_calc_mult_shift() does a division on each shift which is a bit
slower (avoids a 1-bit rounding error but that will never be more than 1 in
2^32 in this case), and the 'maxsec' functionality is not needed because
mul_u64_u32_shr() is used to avoid 64-bit overflow.
I will send V3.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCH V2] perf: x86: Improve accuracy of perf/sched clock Thomas Gleixner <tglx@linutronix.de> - 2015-08-20 21:40 +0200
Re: [PATCH V2] perf: x86: Improve accuracy of perf/sched clock Adrian Hunter <adrian.hunter@intel.com> - 2015-08-21 08:50 +0200
[PATCH V3] perf: x86: Improve accuracy of perf/sched clock Adrian Hunter <adrian.hunter@intel.com> - 2015-08-21 11:10 +0200
Re: [PATCH V3] perf: x86: Improve accuracy of perf/sched clock Adrian Hunter <adrian.hunter@intel.com> - 2015-09-01 10:40 +0200
Re: [PATCH V3] perf: x86: Improve accuracy of perf/sched clock Peter Zijlstra <peterz@infradead.org> - 2015-09-01 11:00 +0200
csiph-web