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

2019-03-25 Thread Geert Uytterhoeven
Hi Finn,

On Tue, Mar 5, 2019 at 10:55 AM Finn Thain  wrote:
> On Tue, 5 Mar 2019, Geert Uytterhoeven wrote:
> > On Tue, Mar 5, 2019 at 7:13 AM Finn Thain  
> > wrote:
> > > On Sat, 1 Dec 2018, Finn Thain wrote:
> > > > 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.
> > >
> > > Are there any plans to merge this series, Geert?
> >
> > Has this been tested on all/most platforms? Or do you think is it safe to
> > apply regardless?
> >
>
> The amiga, atari and mac patches have been tested.
>
> The apollo, q40, sun3 and sun3x patches are safe though untested, AFAIK. I
> confirmed that, in qemu at least, the default jiffies clocksource will
> work, and the patch is trivial.
>
> That leaves bvme6000, hp300, mvme147 and mvme16x. Those have not been
> tested. Here are some options for those platforms:
>
> 1) Apply the patches untested (gaining new clocksources and some API
> modernization for m68k, while fixing old bugs and potentially introducing
> new bugs).

Thank you, applied and queued for v5.2.

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


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

2019-03-05 Thread Linus Walleij
On Tue, Mar 5, 2019 at 10:55 AM Finn Thain  wrote:

> That leaves bvme6000, hp300, mvme147 and mvme16x. Those have not been
> tested. Here are some options for those platforms:
>
> 1) Apply the patches untested (gaining new clocksources and some API
> modernization for m68k, while fixing old bugs and potentially introducing
> new bugs).

This is what I usually do with ARM machines when I don't get any
tests or reviews after a reasonable time lap, > month for sure is
a reasonable time for users to have all opportunity in the world to
test patches.

If things break, users will report it as is custom and the author will
be expected to work with them to fix them then, we do this all the
time.

Those users who want everything tested before it gets merged should
provide resources or time for testing.

Just my €0.01
Linus Walleij


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

2019-03-05 Thread Finn Thain
On Tue, 5 Mar 2019, Geert Uytterhoeven wrote:

> On Tue, Mar 5, 2019 at 7:13 AM Finn Thain  wrote:
> > On Sat, 1 Dec 2018, Finn Thain wrote:
> > > 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.
> >
> > Are there any plans to merge this series, Geert?
> 
> Has this been tested on all/most platforms? Or do you think is it safe to
> apply regardless?
> 

The amiga, atari and mac patches have been tested.

The apollo, q40, sun3 and sun3x patches are safe though untested, AFAIK. I 
confirmed that, in qemu at least, the default jiffies clocksource will 
work, and the patch is trivial.

That leaves bvme6000, hp300, mvme147 and mvme16x. Those have not been 
tested. Here are some options for those platforms:

1) Apply the patches untested (gaining new clocksources and some API 
modernization for m68k, while fixing old bugs and potentially introducing 
new bugs).

2) Do nothing until someone tests the patch series on those 4 platforms.

3) Rewrite patches such that those 4 platforms get the same treatment as 
apollo, q40, sun3 and sun3x (this plan was already nak'd in the hp300 
case).

4) Keep using the gettimeoffset API. Redo the patch series to keep the bug 
fixes for the 3 platforms that can be readily tested. When the API change 
becomes unavoidable, remove difficult platforms.

Maybe there are other possibilities?

-- 

> Thanks!
> 
> Gr{oetje,eeting}s,
> 
> Geert
> 
> 


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

2019-03-04 Thread Geert Uytterhoeven
Hi Finn,

On Tue, Mar 5, 2019 at 7:13 AM Finn Thain  wrote:
> On Sat, 1 Dec 2018, Finn Thain wrote:
> > 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.
>
> Are there any plans to merge this series, Geert?

Has this been tested on all/most platforms? Or do you think is it safe to
apply regardless?

Thanks!

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


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

2019-03-04 Thread Finn Thain
On Sat, 1 Dec 2018, Finn Thain wrote:

> 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.

Are there any plans to merge this series, Geert?

-- 


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

2018-11-30 Thread Finn Thain
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



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

2018-11-30 Thread Finn Thain
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