linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/14] m68k: Drop arch_gettimeoffset and adopt clocksource API
@ 2018-12-01  0:53 Finn Thain
  2018-12-01  0:53 ` [PATCH v4 05/14] m68k: amiga: Convert to " Finn Thain
                   ` (14 more replies)
  0 siblings, 15 replies; 20+ messages in thread
From: Finn Thain @ 2018-12-01  0:53 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Andreas Schwab, Arnd Bergmann, Stephen N Chivers,
	Thomas Gleixner, Kars de Jong, Daniel Lezcano, Michael Schmitz,
	John Stultz, Linus Walleij, linux-m68k, linux-kernel

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(-)

-- 
2.18.1


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-03-25  9:25 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-01  0:53 [PATCH v4 00/14] m68k: Drop arch_gettimeoffset and adopt clocksource API Finn Thain
2018-12-01  0:53 ` [PATCH v4 05/14] m68k: amiga: Convert to " Finn Thain
2018-12-01  0:53 ` [PATCH v4 02/14] m68k: mac: Fix VIA timer counter accesses Finn Thain
2018-12-01  0:53 ` [PATCH v4 01/14] m68k: Call timer_interrupt() with interrupts disabled Finn Thain
2018-12-01  0:53 ` [PATCH v4 09/14] m68k: hp300: Handle timer counter overflow Finn Thain
2018-12-01  0:53 ` [PATCH v4 03/14] m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations Finn Thain
2018-12-01  0:53 ` [PATCH v4 12/14] m68k: mvme147: Handle timer counter overflow Finn Thain
2018-12-01  0:53 ` [PATCH v4 13/14] m68k: mvme16x: Convert to clocksource API Finn Thain
2018-12-01  0:53 ` [PATCH v4 10/14] m68k: mac: " Finn Thain
2018-12-01  0:53 ` [PATCH v4 04/14] m68k: Drop ARCH_USES_GETTIMEOFFSET Finn Thain
2018-12-01  0:53 ` [PATCH v4 07/14] m68k: bvme6000: Convert to clocksource API Finn Thain
2018-12-01  0:53 ` [PATCH v4 14/14] m68k: mvme16x: Handle timer counter overflow Finn Thain
2018-12-01  0:53 ` [PATCH v4 08/14] m68k: hp300: Convert to clocksource API Finn Thain
2018-12-01  0:53 ` [PATCH v4 06/14] m68k: atari: " Finn Thain
2018-12-01  0:53 ` [PATCH v4 11/14] m68k: mvme147: " Finn Thain
2019-03-05  6:13 ` [PATCH v4 00/14] m68k: Drop arch_gettimeoffset and adopt " Finn Thain
2019-03-05  7:50   ` Geert Uytterhoeven
2019-03-05  9:55     ` Finn Thain
2019-03-05 12:01       ` Linus Walleij
2019-03-25  9:25       ` Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).