On Sat, 27 Oct 2018, Arnd Bergmann wrote:
On Sat, Oct 27, 2018 at 5:02 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> 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