[PATCH 3/4] x86: Optimize enhanced copy user fault handling

From: Andi Kleen
Date: Fri Oct 10 2014 - 19:25:36 EST


From: Andi Kleen <ak@xxxxxxxxxxxxxxx>

For the enhanced copy string case we can trivially optimize the fault
handling. It is just a single subtraction, as there is only one
possible fault point. So get rid of handle tail for this and
just do the subtraction directly.

This patch is strictly not needed for the goal of making perf
backtrace faster, but it will possibly help other workloads.

Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
---
arch/x86/lib/copy_user_64.S | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
index dee945d..608caf45 100644
--- a/arch/x86/lib/copy_user_64.S
+++ b/arch/x86/lib/copy_user_64.S
@@ -285,8 +285,10 @@ ENTRY(copy_user_enhanced_fast_string)
ret

.section .fixup,"ax"
-12: movl %ecx,%edx /* ecx is zerorest also */
- jmp copy_user_handle_tail
+ /* edx: len: ecx: actually copied bytes */
+12: sub %ecx,%edx
+ mov %edx,%eax
+ ret
.previous

_ASM_EXTABLE(1b,12b)
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/