Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1489624

Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock

From Nicolai Stange <nicstange@gmail.com>
Newsgroups linux.kernel
Subject Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock
Date 2016-09-23 00:40 +0200
Message-ID <skkOS-3Qd-23@gated-at.bofh.it> (permalink)
References (1 earlier) <sjAj0-81b-27@gated-at.bofh.it> <sjCkN-13s-15@gated-at.bofh.it> <sjCNP-1cK-15@gated-at.bofh.it> <sjQnM-1xc-17@gated-at.bofh.it> <skk2u-3f3-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Thomas Gleixner <tglx@linutronix.de> writes:

> On Wed, 21 Sep 2016, Nicolai Stange wrote:
>> Thomas Gleixner <tglx@linutronix.de> writes:
>> 
>> > On Wed, 21 Sep 2016, Nicolai Stange wrote:
>> >> Thomas Gleixner <tglx@linutronix.de> writes:
>> >> > Have you ever measured the overhead of the extra work which has to be done
>> >> > in clockevents_adjust_all_freqs() ?
>> >> 
>> >> Not exactly, I had a look at its invocation frequency which seems to
>> >> decay exponentially with uptime, presumably because the NTP error
>> >> approaches zero.
>> >> 
>> >> However, I've just gathered a function_graph ftrace on my Intel
>> >> i7-4800MQ (Haswell, 8HTs):
>> >> 
>> >> #     TIME        CPU  DURATION                  FUNCTION CALLS
>> >> #      |          |     |   |                     |   |   |   |
>> >>    85.287027 |   0)   0.899 us    |  clockevents_adjust_all_freqs();
>> >>    85.288026 |   0)   0.759 us    |  clockevents_adjust_all_freqs();
>> >>    85.289026 |   0)   0.735 us    |  clockevents_adjust_all_freqs();
>> >>    85.290026 |   0)   0.671 us    |  clockevents_adjust_all_freqs();
>> >>   149.503656 |   2)   2.477 us    |  clockevents_adjust_all_freqs();
>> >
>> > That's not that bad. Though I'd like to see numbers for ARM (especially the
>> > less powerful SoCs) as well.
>> 
>> On a Raspberry Pi 2B (bcm2836, ARMv7) with CONFIG_SMP=y, the mean over
>> ~5300 samples is 5.14+/-1.04us with a max of 11.15us.
>
> So why is the variance that high?

I think this is because the histogram has got two peaks, c.f. [1]

Also, the 11us maximum is not isolated but a flat tail is reaching to
this point which I admittedly can't explain.

> You have an outlier on that intel as well which might be caused by
> NMI, but it might also be a systematic issue depending on the input
> parameters.

AFACIT, the "algorithmic" runtime should be constant per CED, so it
should not be dependent on any input parameters.

> 11 us on that ARM worries me.

I'll try to do some more tracing tomorrow in order to get the reason for
that histogram's long tail. But I have to admit that I don't really know
what to look for except for NMIs. Any hints?
What might be remarkable in this context is that the dataset's min is
at 2.24us. Perhaps I'm actually seeing the distribution of the
clockevents_lock acquisition?


Thanks,

Nicolai



[1] https://nicst.de/cev-freqadjust/adjust_all_freqs-function_graph_hist.png

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC v7 00/23] adapt clockevents frequencies to mono clock Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 14/23] clockevents: decouple ->max_delta_ns from ->max_delta_ticks Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 12/23] many clockevent drivers: don't set ->min_delta_ns and ->max_delta_ns Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 09/23] arch/x86/platform/uv/uv_time: set ->min_delta_ticks and ->max_delta_ticks Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 20/23] clockevents: purge ->min_delta_ns Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 21/23] clockevents: initial support for mono to raw time conversion Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 10/23] arch/tile/kernel/time: set ->min_delta_ticks and ->max_delta_ticks Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 06/23] clockevents: make clockevents_config() static Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 03/23] clocksource: em_sti: split clock prepare and enable steps Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 15/23] clockevents: do comparison of delta against minimum in terms of cycles Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 13/23] clockevents: introduce CLOCK_EVT_FEAT_NO_ADJUST flag Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 22/23] clockevents: make setting of ->mult and ->mult_adjusted atomic Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 04/23] clocksource: em_sti: compute rate before registration Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 16/23] clockevents: clockevents_program_min_delta(): don't set ->next_event Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 07/23] many clockevent drivers: set ->min_delta_ticks and ->max_delta_ticks Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 19/23] timer_list: print_tickdevice(): calculate ->min_delta_ns dynamically Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 11/23] clockevents: always initialize ->min_delta_ns and ->max_delta_ns Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 18/23] clockevents: min delta increment: calculate min_delta_ns from ticks Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 05/23] clocksource: h8300_timer8: don't reset rate in ->set_state_oneshot() Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 17/23] clockevents: use ->min_delta_ticks_adjusted to program minimum delta Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:20 +0200
  [RFC v7 23/23] timekeeping: inform clockevents about freq adjustments Nicolai Stange <nicstange@gmail.com> - 2016-09-16 22:30 +0200
  Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Thomas Gleixner <tglx@linutronix.de> - 2016-09-20 23:00 +0200
    Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Nicolai Stange <nicstange@gmail.com> - 2016-09-21 01:10 +0200
      Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Thomas Gleixner <tglx@linutronix.de> - 2016-09-21 01:40 +0200
        Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Nicolai Stange <nicstange@gmail.com> - 2016-09-21 16:10 +0200
          Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Thomas Gleixner <tglx@linutronix.de> - 2016-09-22 23:50 +0200
            Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Nicolai Stange <nicstange@gmail.com> - 2016-09-23 00:40 +0200
              Re: [RFC v7 00/23] adapt clockevents frequencies to mono clock Nicolai Stange <nicstange@gmail.com> - 2016-09-26 12:20 +0200

csiph-web