Skip to contentSkip to conversation

Modify comments and clean up code.

RFC PATCH In review [email protected] 3 participants 4 messages Jun 28, 2011 – Jul 1, 2011 x86

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/2 Modify comments and clean up code.

From: Ma Ling <[email protected]>

Modern CPU use fast-string instruction to accelerate copy performance, by combining data into 128bit, so we modify comments and code style.

Thanks
Ling

---
 arch/x86/lib/copy_page_64.S |  124 +++++++++++++++++++++---------------------
 1 files changed, 62 insertions(+), 62 deletions(-)
arch/x86/lib/copy_page_64.S +62 -62
index 6fec2d1..45f7db7 100644
@@ -2,97 +2,98 @@
 
 #include <linux/linkage.h>
 #include <asm/dwarf2.h>
+#include <asm/cpufeature.h>
 
 	ALIGN
-copy_page_c:
+copy_page_rep:
 	CFI_STARTPROC
-	movl $4096/8,%ecx
-	rep movsq
+	movl	$4096/8, %ecx
+	rep	movsq
 	ret
 	CFI_ENDPROC
-ENDPROC(copy_page_c)
+ENDPROC(copy_page_rep)
 
-/* Don't use streaming store because it's better when the target
-   ends up in cache. */
-	    
-/* Could vary the prefetch distance based on SMP/UP */
+/*
+   Don't use streaming copy unless cpu indicate X86_FEATURE_REP_GOOD
+   Could vary the prefetch distance based on SMP/UP
+*/
 
 ENTRY(copy_page)
 	CFI_STARTPROC
-	subq	$3*8,%rsp
+	subq	$3*8, %rsp
 	CFI_ADJUST_CFA_OFFSET 3*8
-	movq	%rbx,(%rsp)
+	movq	%rbx, (%rsp)
 	CFI_REL_OFFSET rbx, 0
-	movq	%r12,1*8(%rsp)
+	movq	%r12, 1*8(%rsp)
 	CFI_REL_OFFSET r12, 1*8
-	movq	%r13,2*8(%rsp)
+	movq	%r13, 2*8(%rsp)
 	CFI_REL_OFFSET r13, 2*8
 
-	movl	$(4096/64)-5,%ecx
+	movl	$(4096/64)-5, %ecx
 	.p2align 4
 .Loop64:
-  	dec     %rcx
+  	dec	%rcx
 
-	movq        (%rsi), %rax
-	movq      8 (%rsi), %rbx
-	movq     16 (%rsi), %rdx
-	movq     24 (%rsi), %r8
-	movq     32 (%rsi), %r9
-	movq     40 (%rsi), %r10
-	movq     48 (%rsi), %r11
-	movq     56 (%rsi), %r12
+	movq	0x8*0(%rsi), %rax
+	movq	0x8*1(%rsi), %rbx
+	movq	0x8*2(%rsi), %rdx
+	movq	0x8*3(%rsi), %r8
+	movq	0x8*4(%rsi), %r9
+	movq	0x8*5(%rsi), %r10
+	movq	0x8*6(%rsi), %r11
+	movq	0x8*7(%rsi), %r12
 
 	prefetcht0 5*64(%rsi)
 
-	movq     %rax,    (%rdi)
-	movq     %rbx,  8 (%rdi)
-	movq     %rdx, 16 (%rdi)
-	movq     %r8,  24 (%rdi)
-	movq     %r9,  32 (%rdi)
-	movq     %r10, 40 (%rdi)
-	movq     %r11, 48 (%rdi)
-	movq     %r12, 56 (%rdi)
+	movq	%rax, 0x8*0(%rdi)
+	movq	%rbx, 0x8*1(%rdi)
+	movq	%rdx, 0x8*2(%rdi)
+	movq	%r8,  0x8*3(%rdi)
+	movq	%r9,  0x8*4(%rdi)
+	movq	%r10, 0x8*5(%rdi)
+	movq	%r11, 0x8*6(%rdi)
+	movq	%r12, 0x8*7(%rdi)
 
-	leaq    64 (%rsi), %rsi
-	leaq    64 (%rdi), %rdi
+	leaq	64 (%rsi), %rsi
+	leaq	64 (%rdi), %rdi
 
-	jnz     .Loop64
+	jnz	.Loop64
 
-	movl	$5,%ecx
+	movl	$5, %ecx
 	.p2align 4
 .Loop2:
-	decl   %ecx
-
-	movq        (%rsi), %rax
-	movq      8 (%rsi), %rbx
-	movq     16 (%rsi), %rdx
-	movq     24 (%rsi), %r8
-	movq     32 (%rsi), %r9
-	movq     40 (%rsi), %r10
-	movq     48 (%rsi), %r11
-	movq     56 (%rsi), %r12
-
-	movq     %rax,    (%rdi)
-	movq     %rbx,  8 (%rdi)
-	movq     %rdx, 16 (%rdi)
-	movq     %r8,  24 (%rdi)
-	movq     %r9,  32 (%rdi)
-	movq     %r10, 40 (%rdi)
-	movq     %r11, 48 (%rdi)
-	movq     %r12, 56 (%rdi)
-
-	leaq	64(%rdi),%rdi
-	leaq	64(%rsi),%rsi
+	decl	%ecx
+
+	movq	0x8*0(%rsi), %rax
+	movq	0x8*1(%rsi), %rbx
+	movq	0x8*2(%rsi), %rdx
+	movq	0x8*3(%rsi), %r8
+	movq	0x8*4(%rsi), %r9
+	movq	0x8*5(%rsi), %r10
+	movq	0x8*6(%rsi), %r11
+	movq	0x8*7(%rsi), %r12
+
+	movq	%rax, 0x8*0(%rdi)
+	movq	%rbx, 0x8*1(%rdi)
+	movq	%rdx, 0x8*2(%rdi)
+	movq	%r8,  0x8*3(%rdi)
+	movq	%r9,  0x8*4(%rdi)
+	movq	%r10, 0x8*5(%rdi)
+	movq	%r11, 0x8*6(%rdi)
+	movq	%r12, 0x8*7(%rdi)
+
+	leaq	64(%rdi), %rdi
+	leaq	64(%rsi), %rsi
 
 	jnz	.Loop2
 
-	movq	(%rsp),%rbx
+	movq	(%rsp), %rbx
 	CFI_RESTORE rbx
-	movq	1*8(%rsp),%r12
+	movq	1*8(%rsp), %r12
 	CFI_RESTORE r12
-	movq	2*8(%rsp),%r13
+	movq	2*8(%rsp), %r13
 	CFI_RESTORE r13
-	addq	$3*8,%rsp
+	addq	$3*8, %rsp
 	CFI_ADJUST_CFA_OFFSET -3*8
 	ret
 .Lcopy_page_end:
@@ -102,11 +103,10 @@ ENDPROC(copy_page)
 	/* Some CPUs run faster using the string copy instructions.
 	   It is also a lot simpler. Use this when possible */
 
-#include <asm/cpufeature.h>
 
 	.section .altinstr_replacement,"ax"
 1:	.byte 0xeb					/* jmp <disp8> */
-	.byte (copy_page_c - copy_page) - (2f - 1b)	/* offset */
+	.byte (copy_page_rep - copy_page) - (2f - 1b)	/* offset */
 2:
 	.previous
 	.section .altinstructions,"a"
Signature · 1 line
1.6.5.2
#1 lore raw
Quoted 11 lines · * [email protected] <[email protected]> wrote:

From: Ma Ling <[email protected]>

Modern CPU use fast-string instruction to accelerate copy performance, by combining data into 128bit, so we modify comments and code style.

Thanks
Ling

---
 arch/x86/lib/copy_page_64.S |  124 +++++++++++++++++++++---------------------
 1 files changed, 62 insertions(+), 62 deletions(-)

Looks good in principle but there's no SOB so i cannot apply it.

Thanks,

Ingo

#2 lore raw
In reply to [email protected]
Quoted 4 lines · [email protected] writes:

From: Ma Ling <[email protected]>

Modern CPU use fast-string instruction to accelerate copy performance, by combining data into 128bit, so we modify comments and code style.

The description has nothing to do with the patch.

As far as I can tell the patch just renames one symbol and changes all white space. Not fully sure what the point of it is.

But normally white space change patches are not supposed to have any other changes because the other changes embedded in them are impossible to review.

-Andi

Signature · 1 line
[email protected] -- Speaking for myself only
#3 lore raw
Quoted 9 lines · Andi Kleen
Quoted 4 lines · [email protected] writes:

From: Ma Ling <[email protected]>

Modern CPU use fast-string instruction to accelerate copy performance, by combining data into 128bit, so we modify comments and code style.

The description has nothing to do with the patch.

Quoted 7 lines

As far as I can tell the patch just renames one symbol and changes all white space. Not fully sure what the point of it is.

But normally white space change patches are not supposed to have any other changes because the other changes embedded in them are impossible to review.

Non-functional cleanups can go into the same patch as whitespace cleanups, as long as the generated object code does not change.

Thanks,

Ingo