Re: [PATCH v2] x86: Use xorl %0,%0 in __get_user_asm
On Thu, Aug 27, 2020 at 10:14 PM Al Viro wrote: > > On Thu, Aug 27, 2020 at 08:09:04PM +0200, Uros Bizjak wrote: > > xorl %0,%0 is equivalent to xorq %0,%0 as both will zero the > > entire register. Use xorl %0,%0 for all operand sizes to avoid > > REX prefix byte when legacy registers are used and to avoid size > > prefix byte when 16bit registers are used. > > > > Zeroing the full register is OK in this use case. xorl %0,%0 also > > breaks register dependency chains, avoiding potential partial > > register stalls with 8 and 16bit operands. > > No objections, but talking about stalls is more than slightly > ridiculous - we'd just taken a #PF, failed there, flipped > pt_regs %rip to fixup section, returned from fault and are > about to fail whatever syscall that had been; a stall here > is really not an issue... Should I submit a v3 with the offending sentence removed, or could I just ask a committer to remove it on the fly? Uros.
Re: [PATCH v2] x86: Use xorl %0,%0 in __get_user_asm
On Thu, Aug 27, 2020 at 08:09:04PM +0200, Uros Bizjak wrote: > xorl %0,%0 is equivalent to xorq %0,%0 as both will zero the > entire register. Use xorl %0,%0 for all operand sizes to avoid > REX prefix byte when legacy registers are used and to avoid size > prefix byte when 16bit registers are used. > > Zeroing the full register is OK in this use case. xorl %0,%0 also > breaks register dependency chains, avoiding potential partial > register stalls with 8 and 16bit operands. No objections, but talking about stalls is more than slightly ridiculous - we'd just taken a #PF, failed there, flipped pt_regs %rip to fixup section, returned from fault and are about to fail whatever syscall that had been; a stall here is really not an issue...
Re: [PATCH v2] x86: Use xorl %0,%0 in __get_user_asm
On 2020-08-27 11:09, Uros Bizjak wrote: > xorl %0,%0 is equivalent to xorq %0,%0 as both will zero the > entire register. Use xorl %0,%0 for all operand sizes to avoid > REX prefix byte when legacy registers are used and to avoid size > prefix byte when 16bit registers are used. > > Zeroing the full register is OK in this use case. xorl %0,%0 also > breaks register dependency chains, avoiding potential partial > register stalls with 8 and 16bit operands. > > The patch lowers the size of .fixup section by 20 bytes. > > Changes since v1: > - Rewrite commit message. > > Signed-off-by: Uros Bizjak > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: "H. Peter Anvin" Reviewed-by: H. Peter Anvin (Intel)