Skip to content

m68k: Drop arch_gettimeoffset and adopt clocksource API

Finn Thain lkml 4 versions – Applied

Status from this message: Thank you, applied and queued for v5.2.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest14 patches 5 repliesApplied
  2. v3 RFC14 patches 0 repliesSuperseded
  3. v2 RFC14 patches 25 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v1 RFC13 patches39 repliesSuperseded

Changes in v4 from the cover letter

- Various improvements to amiga, mac, bvme6000 and hp300 conversions
summarized in the relevant patches.
- Added tested-by tags.

Patches in v4 Applied

#Subject and filesSizeRepliesApplied
1/14m68k: Call timer_interrupt() with interrupts disabledarch/m68k/amiga/cia.c arch/m68k/atari/ataints.c arch/m68k/atari/time.c +8 more+105 -470 replies
2/14m68k: mac: Fix VIA timer counter accessesarch/m68k/mac/via.c+53 -490 replies
3/14m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementationsarch/m68k/apollo/config.c arch/m68k/q40/config.c arch/m68k/sun3/config.c +4 more+0 -320 replies
4/14m68k: Drop ARCH_USES_GETTIMEOFFSETarch/m68k/Kconfig arch/m68k/amiga/config.c arch/m68k/atari/config.c +6 more+0 -170 replies
5/14m68k: amiga: Convert to clocksource APIarch/m68k/amiga/config.c+37 -90 replies
6/14m68k: atari: Convert to clocksource APIarch/m68k/atari/time.c+36 -170 replies
7/14m68k: bvme6000: Convert to clocksource APIarch/m68k/bvme6000/config.c+41 -160 replies
8/14m68k: hp300: Convert to clocksource APIarch/m68k/hp300/time.c+30 -70 replies
9/14m68k: hp300: Handle timer counter overflowarch/m68k/hp300/time.c+27 -190 replies
10/14m68k: mac: Convert to clocksource APIarch/m68k/mac/via.c+36 -90 replies
11/14m68k: mvme147: Convert to clocksource APIarch/m68k/include/asm/mvme147hw.h arch/m68k/mvme147/config.c+30 -70 replies
12/14m68k: mvme147: Handle timer counter overflowarch/m68k/include/asm/mvme147hw.h arch/m68k/mvme147/config.c+12 -100 replies
13/14m68k: mvme16x: Convert to clocksource APIarch/m68k/mvme16x/config.c+31 -60 replies
14/14m68k: mvme16x: Handle timer counter overflowarch/m68k/mvme16x/config.c+32 -130 replies

Reviews trailers per patch

8 of 14 patches have a Reviewed-by or Acked-by.

PatchLinus WalleijMichael SchmitzStan Johnson
1/14
2/14
3/14
4/14A-b
5/14A-b T-b
6/14A-b T-b
7/14A-b
8/14A-b
9/14
10/14A-b T-b
11/14A-b
12/14
13/14A-b
14/14

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

Read the v4 thread

Cover letter [PATCH v4 00/14] m68k: Drop arch_gettimeoffset and adopt clocksource API

This series removes "select ARCH_USES_GETTIMEOFFSET" from arch/m68k and converts users of arch_gettimeoffset to the clocksource API. Various bugs are fixed along the way.

Those platforms which do not actually implement arch_gettimeoffset (apollo, q40, sun3, sun3x) use the "jiffies" clocksource by default.

The difficulty with these patches is the use of the timer interrupt to update the counter for the clock source. The timer interrupt handler races with clocksource read method, and both of those functions race with the timer hardware.

Hence, more testing would be appreciated. To my knowledge, the conversion patches for bvme6000, hp300, mvme147 and mvme16x are still untested.

Changed since v3:
- Various improvements to amiga, mac, bvme6000 and hp300 conversions
summarized in the relevant patches.
- Added tested-by tags.

Changed since v2:
- Reinstated patch "m68k: hp300: Convert to clocksource API", and added
a new patch "m68k: hp300: Handle timer counter overflow" to address monotonicity issues.
- Omitted a minor cleanup patch which may be merged independently.
- Various other changes summarized in the relevant patches.

Changed since v1:
- Dropped patches 1/13 and 2/13. These were a failed attempt to fix
5cfc8ee0bb51 and 4ad4c76b7afb. By adopting the clocksource API we can fix this issue in mainline. By backporting this series we can fix it for -stable (for m68k at least).
- Dropped patch "m68k: hp300: Convert to clocksource API" and added
patch "m68k: hp300: Remove hp300_gettimeoffset".
- Added a new patch to address an old m68k bug pointed out by Thomas
Gleixner. The bug can arise when a timer interrupt handler gets interrupted.
- Added new patches to address old mvme16x and mvme147 bugs pointed out
by Thomas Gleixner. The bug could cause the clock to jump backwards.
- Various other changes summarized in the relevant patches.

Finn Thain (14):
m68k: Call timer_interrupt() with interrupts disabled
m68k: mac: Fix VIA timer counter accesses
m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset
implementations
m68k: Drop ARCH_USES_GETTIMEOFFSET
m68k: amiga: Convert to clocksource API
m68k: atari: Convert to clocksource API
m68k: bvme6000: Convert to clocksource API
m68k: hp300: Convert to clocksource API
m68k: hp300: Handle timer counter overflow
m68k: mac: Convert to clocksource API
m68k: mvme147: Convert to clocksource API
m68k: mvme147: Handle timer counter overflow
m68k: mvme16x: Convert to clocksource API
m68k: mvme16x: Handle timer counter overflow

 arch/m68k/Kconfig                 |   1 -
 arch/m68k/amiga/cia.c             |   9 ++
 arch/m68k/amiga/config.c          |  49 +++++++---
 arch/m68k/apollo/config.c         |   7 --
 arch/m68k/atari/ataints.c         |   4 +-
 arch/m68k/atari/config.c          |   2 -
 arch/m68k/atari/time.c            |  70 ++++++++++----
 arch/m68k/bvme6000/config.c       |  77 ++++++++++------
 arch/m68k/hp300/config.c          |   1 -
 arch/m68k/hp300/time.c            |  73 +++++++++++----
 arch/m68k/hp300/time.h            |   1 -
 arch/m68k/include/asm/mvme147hw.h |   2 +-
 arch/m68k/mac/config.c            |   3 -
 arch/m68k/mac/via.c               | 146 ++++++++++++++++++++----------
 arch/m68k/mvme147/config.c        |  73 ++++++++++-----
 arch/m68k/mvme16x/config.c        |  97 ++++++++++++++------
 arch/m68k/q40/config.c            |   9 --
 arch/m68k/q40/q40ints.c           |  19 ++--
 arch/m68k/sun3/config.c           |   2 -
 arch/m68k/sun3/intersil.c         |   7 --
 arch/m68k/sun3/sun3ints.c         |   3 +
 arch/m68k/sun3x/config.c          |   1 -
 arch/m68k/sun3x/time.c            |  21 ++---
 arch/m68k/sun3x/time.h            |   1 -
 24 files changed, 445 insertions(+), 233 deletions(-)
Signature · 1 line
2.18.1