On Sat, 27 Oct 2018, Arnd Bergmann wrote:

> On Sat, Oct 27, 2018 at 5:02 PM Geert Uytterhoeven <ge...@linux-m68k.org> 
> wrote:
> >
> > Hi Arnd,
> >
> > https://lwn.net/Articles/769468/ wrote:
> > >  For example, the m68k architecture uses a number of internal APIs that 
> > > no other
> > > architecture needs at this point; removing that architecture would enable 
> > > removing
> > > the APIs as well
> >
> > and
> >
> > > Ted Ts'o suggested that an ultimatum could be made: either the m68k 
> > > architecture
> > > stops using the old, deprecated timer API (for example) within one year 
> > > or it is
> > > removed from the kernel.
> >
> > Which APIs are these exactly?
> 
> The example I gave was GENERIC_CLOCKEVENTS on m68, which is
> supported on most but not all machines there.

That suggests that the removal of just those machines would suffice (as 
opposed to the removal of the entire arch).

Also, Documentation/features/time/clockevents/arch-support.txt says,
    |        m68k: |  ok  |

These two observations make me wonder whether the clockevents feature is 
related to the discussion quoted above (?)

> This is also missing on a couple of others (ia64 at least, not sure what 
> else). Another one would be having CLKDEV_LOOKUP without COMMON_CLK. 
> This one is not a problem for m68k but is for a couple of ARM and MIPS 
> platforms that have not yet been converted to COMMON_CLK.
> 
> There are probably a couple more like this. I don't actually see any 
> that are /only/ used by m68k, but there are some interfaces that would 
> be good to stop using overall to keep things simpler.
> 

Perhaps the most overdue features are the following. At least 50% of 
architectures have already implemented these features (or else cannot 
implement them).

$ grep -cw TODO Documentation/features/*/*/arch-support.txt |sort -t: -k2n 
|head -n 9 
Documentation/features/time/clockevents/arch-support.txt:1
Documentation/features/time/modern-timekeeping/arch-support.txt:2
Documentation/features/vm/numa-memblock/arch-support.txt:2
Documentation/features/vm/THP/arch-support.txt:5
Documentation/features/sched/numa-balancing/arch-support.txt:6
Documentation/features/core/tracehook/arch-support.txt:7
Documentation/features/core/generic-idle-thread/arch-support.txt:8
Documentation/features/locking/lockdep/arch-support.txt:8
Documentation/features/debug/kgdb/arch-support.txt:12

Of those, m68k has a "TODO" against the following 5 features.

time/modern-timekeeping
core/tracehook
core/generic-idle-thread
locking/lockdep
debug/kgdb

The question is, which of those features, if implemented, would contribute 
the most towards the goal (that is, to keep things simpler)?

We might also ask about features that cannot be implemented on m68k; there 
are 4 of those.

$ grep -cw "m68k.*[.][.]" Documentation/features/*/*/arch-support.txt |sort -t: 
-k2n
...
Documentation/features/sched/numa-balancing/arch-support.txt:1
Documentation/features/vm/THP/arch-support.txt:1
Documentation/features/vm/TLB/arch-support.txt:1
Documentation/features/vm/numa-memblock/arch-support.txt:1

At least 8 out of 24 architectures would have to be deleted to make that 
list any shorter.

-- 

>        Arnd
> 

Reply via email to