ARM Linux Kernel May Shift To Generic Entry Code: Less Assembly But Lower Performance
- Reference: 0001531288
- News link: https://www.phoronix.com/news/ARM-Linux-Generic-Entry
- Source link:
In a move similar to ongoing work for the ARM64 Linux kernel code, the 32-bit ARM kernel code has also been seeing activity to make use of the generic entry code within the kernel. Linus Walleij of Linaro has been pursuing this ARM generic entry effort and on Friday sent out a pull request looking to land this change.
Linus Walleij sums up the effort of convering the ARM Linux kernel to using the generic entry code:
Main upsides:
- Using the same common entry as used by x86_64, RISCV, S390 and Loongarch, probably soon also ARM64.
- Moves ARM away from the obsoleted context tracker entry points user_enter_callable() and user_exit_callable() are now only used by ARM, CSKY and Xtensa.
- Solves a few lockdep warnings in the process.
- Converts a bit of assembly into C.
Main downside:
- Slightly increased system call overhead, around 6% in measurements.
See [1]this pull for those interested in the ARM Linux generic entry work. We'll see if it manages to land in the next kernel cycle.
[1] https://lore.kernel.org/lkml/CACRpkdZCiiMTwf7eGJJ9aCKFOC3_xTGv1JKQUijjyp+_++cZ_A@mail.gmail.com/
dumb ways to code