Skip to content

64-bit friendly generic sched_clock()

Stephen Boyd linux-arm-kernel linux-arm-msm lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest17 patches 32 repliesIn review
  2. v26 patches 28 repliesSuperseded
  3. v14 patches 16 repliesSuperseded

Changes in v4 from the cover letter

* Move to use seqcount to fix issues with 64-bit cyc counters
* Move to hrtimer to fix underflow/overflow errors in wraparound calculation
* Use of 1 hour in clocks_calc_mult_shift
* Converted over drivers in drivers/clocksource

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17clocksource: Extract max nsec calculation into separate functioninclude/linux/clocksource.h kernel/time/clocksource.c+32 -150 replies
2/17sched_clock: Use seqcount instead of rolling our ownkernel/time/sched_clock.c+8 -193 replies
3/17sched_clock: Use an hrtimer instead of timerkernel/time/sched_clock.c+16 -136 replies
4/17sched_clock: Add support for >32 bit sched_clockinclude/linux/sched_clock.h kernel/time/sched_clock.c+34 -142 replies
5/17arch_timer: Move to generic sched_clock frameworkarch/arm/kernel/arch_timer.c arch/arm64/Kconfig arch/arm64/kernel/time.c +1 more+5 -246 replies
6/17sched_clock: Remove sched_clock_func() hookinclude/linux/sched_clock.h kernel/time/sched_clock.c+1 -100 replies
7/17clocksource: bcm2835: Switch to sched_clock_register()drivers/clocksource/bcm2835_timer.c+2 -23 replies
8/17ocksource: dbx500-prcmu: Switch to sched_clock_register()drivers/clocksource/clksrc-dbx500-prcmu.c+2 -31 reply
9/17clocksource: dw_apb_timer_of: Switch to sched_clock_register()drivers/clocksource/dw_apb_timer_of.c+2 -20 replies
10/17clocksource: mxs_timer: Switch to sched_clock_register()drivers/clocksource/mxs_timer.c+2 -22 replies
11/17clocksource: nomadik: Switch to sched_clock_register()drivers/clocksource/nomadik-mtu.c+2 -20 replies
12/17clocksource: samsung_pwm_timer: Switch to sched_clock_register()drivers/clocksource/samsung_pwm_timer.c+2 -20 replies
13/17clocksource: tegra: Switch to sched_clock_register()drivers/clocksource/tegra20_timer.c+2 -21 reply
14/17clocksource: time-armada-370-xp: Switch to sched_clock_register()drivers/clocksource/time-armada-370-xp.c+2 -21 reply
15/17clocksource: sirf: Switch to sched_clock_register() and use 64 bitsdrivers/clocksource/timer-prima2.c+3 -30 replies
16/17clocksource: vf_pit_timer: Switch to sched_clock_register()drivers/clocksource/vf_pit_timer.c+2 -20 replies
17/17sched_clock: Deprecate setup_sched_clock()include/linux/sched_clock.h+2 -10 replies

Reviews trailers per patch

6 of 17 patches have a Reviewed-by or Acked-by.

PatchWill DeaconStephen WarrenShawn GuoChristopher CovingtonGregory CLEMENT
SeriesT-b
1/17
2/17A-b
3/17
4/17
5/17A-b
6/17
7/17A-b
8/17
9/17
10/17A-b
11/17
12/17
13/17A-b T-b
14/17A-b
15/17
16/17
17/17

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v4 thread

Cover letter [PATCH v4 00/17] 64-bit friendly generic sched_clock()

This patchset adds support for 64 bit counters in the generic sched_clock code and converts drivers over to use it. Based on v3.11-rc1.

Changes since v3:
* Move to use seqcount to fix issues with 64-bit cyc counters
* Move to hrtimer to fix underflow/overflow errors in wraparound calculation
* Use of 1 hour in clocks_calc_mult_shift
* Converted over drivers in drivers/clocksource

Stephen Boyd (17):
clocksource: Extract max nsec calculation into separate function
sched_clock: Use seqcount instead of rolling our own
sched_clock: Use an hrtimer instead of timer
sched_clock: Add support for >32 bit sched_clock
arch_timer: Move to generic sched_clock framework
sched_clock: Remove sched_clock_func() hook
clocksource: bcm2835: Switch to sched_clock_register()
ocksource: dbx500-prcmu: Switch to sched_clock_register()
clocksource: dw_apb_timer_of: Switch to sched_clock_register()
clocksource: mxs_timer: Switch to sched_clock_register()
clocksource: nomadik: Switch to sched_clock_register()
clocksource: samsung_pwm_timer: Switch to sched_clock_register()
clocksource: tegra: Switch to sched_clock_register()
clocksource: time-armada-370-xp: Switch to sched_clock_register()
clocksource: sirf: Switch to sched_clock_register() and use 64 bits
clocksource: vf_pit_timer: Switch to sched_clock_register()
sched_clock: Deprecate setup_sched_clock()

 arch/arm/kernel/arch_timer.c              |  14 ----
 arch/arm64/Kconfig                        |   1 +
 arch/arm64/kernel/time.c                  |  10 ---
 drivers/clocksource/arm_arch_timer.c      |   4 ++
 drivers/clocksource/bcm2835_timer.c       |   4 +-
 drivers/clocksource/clksrc-dbx500-prcmu.c |   5 +-
 drivers/clocksource/dw_apb_timer_of.c     |   4 +-
 drivers/clocksource/mxs_timer.c           |   4 +-
 drivers/clocksource/nomadik-mtu.c         |   4 +-
 drivers/clocksource/samsung_pwm_timer.c   |   4 +-
 drivers/clocksource/tegra20_timer.c       |   4 +-
 drivers/clocksource/time-armada-370-xp.c  |   4 +-
 drivers/clocksource/timer-prima2.c        |   6 +-
 drivers/clocksource/vf_pit_timer.c        |   4 +-
 include/linux/clocksource.h               |   2 +
 include/linux/sched_clock.h               |   7 +-
 kernel/time/clocksource.c                 |  45 ++++++++-----
 kernel/time/sched_clock.c                 | 105 +++++++++++++++---------------
 18 files changed, 116 insertions(+), 115 deletions(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation