Re: [PATCH 0/7] preempt_count rework -v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> So the increase is there too, doing a objdump -D on them the first 
> difference is:
> 
> 0000000000000660 <do_page_add_anon_rmap>:
>      660:	55                   	push   %rbp
>      661:	48 89 e5             	mov    %rsp,%rbp
>      664:	48 83 ec 20          	sub    $0x20,%rsp
>      668:	48 89 5d f0          	mov    %rbx,-0x10(%rbp)
>      66c:	4c 89 65 f8          	mov    %r12,-0x8(%rbp)
>      670:	48 89 fb             	mov    %rdi,%rbx
>      673:	f0 ff 47 18          	lock incl 0x18(%rdi)
>      677:	0f 94 c0             	sete   %al
>      67a:	84 c0                	test   %al,%al
>      67c:	75 12                	jne    690 <do_page_add_anon_rmap+0x30>
>      67e:	48 8b 5d f0          	mov    -0x10(%rbp),%rbx
>      682:	4c 8b 65 f8          	mov    -0x8(%rbp),%r12
>      686:	c9                   	leaveq 
> 
> vs.:
> 
> 0000000000000660 <do_page_add_anon_rmap>:
>      660:	55                   	push   %rbp
>      661:	48 89 e5             	mov    %rsp,%rbp
>      664:	48 83 ec 20          	sub    $0x20,%rsp
>      668:	48 89 5d e0          	mov    %rbx,-0x20(%rbp)
>      66c:	4c 89 65 e8          	mov    %r12,-0x18(%rbp)
>      670:	48 89 fb             	mov    %rdi,%rbx
>      673:	4c 89 6d f0          	mov    %r13,-0x10(%rbp)
>      677:	4c 89 75 f8          	mov    %r14,-0x8(%rbp)
>      67b:	f0 ff 47 18          	lock incl 0x18(%rdi)
>      67f:	74 17                	je     698 <do_page_add_anon_rmap+0x38>
>      681:	48 8b 5d e0          	mov    -0x20(%rbp),%rbx
>      685:	4c 8b 65 e8          	mov    -0x18(%rbp),%r12
>      689:	4c 8b 6d f0          	mov    -0x10(%rbp),%r13
>      68d:	4c 8b 75 f8          	mov    -0x8(%rbp),%r14
>      691:	c9                   	leaveq 
> 
> For some obscure (to me) reason the new fangled asm goto construct 
> generates a bunch of extra MOVs.

It adds two pairs of MOVs that shows that R13 and R14 got clobbered, but 
the change also got rid of of a SETE and a TEST here:

>      673:	f0 ff 47 18          	lock incl 0x18(%rdi)
>      677:	0f 94 c0             	sete   %al
>      67a:	84 c0                	test   %al,%al
>      67c:	75 12                	jne    690 <do_page_add_anon_rmap+0x30>

so there's a slight increase in size, but the extra instructions look 
rather lightweight and it could all go away if asm goto is improved ...

It would all be very sweet if all those clobbers went away.

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux