x86/entry: Test ti_work for zero before processing individual bits
authorXin Li (Intel) <xin@zytor.com>
Thu, 22 Aug 2024 07:39:04 +0000 (00:39 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 25 Aug 2024 17:23:00 +0000 (19:23 +0200)
commit0dfac6f267fa091aa348c6a6742b463c9e7c98e3
tree753793a5adee543d9c67738db958347c71392cf1
parent723edbd2ca5fb4c78ac4a5644511c63895fd1c57
x86/entry: Test ti_work for zero before processing individual bits

In most cases, ti_work values passed to arch_exit_to_user_mode_prepare()
are zeros, e.g., 99% in kernel build tests.  So an obvious optimization is
to test ti_work for zero before processing individual bits in it.

Omit the optimization when FPU debugging is enabled, otherwise the
FPU consistency check is never executed.

Intel 0day tests did not find a perfermance regression with this change.

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20240822073906.2176342-2-xin@zytor.com
arch/x86/include/asm/entry-common.h