More __get_user_asm_ll32 ...
__get_user_asm_ll32 contains a junk move %0, $0 left over from an older version of the code. Ignoring fixups code and data this instruction inflates the normal path in __get_user() by 50% which may explain much of the size and performance you have meassures. It also always clears the error return, iow. __get_user_asm_ll32(..., &<something 64-bit>) would never have returned an error. ARGH.
Ralf
Quoted 6 lines · Ralf Baechle
__get_user_asm_ll32contains a junk move %0, $0 left over from an older version of the code. Ignoring fixups code and data this instruction inflates the normal path in__get_user()by 50% which may explain much of the size and performance you have meassures. It also always clears the error return, iow.__get_user_asm_ll32(..., &<something 64-bit>)would never have returned an error. ARGH.
Why is it clears the error return? The "3:" label is just after the junk move.
---
Atsushi Nemoto
Quoted 2 lines · Atsushi Nemoto
Why is it clears the error return? The "3:" label is just after the junk move.
You're right and the final commit message reflects that. So this is really only a code size (320 bytes) and performance fix.
Ralf