Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754389Ab3ILMZk (ORCPT ); Thu, 12 Sep 2013 08:25:40 -0400 Received: from mail-bk0-f54.google.com ([209.85.214.54]:41793 "EHLO mail-bk0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753530Ab3ILMZi (ORCPT ); Thu, 12 Sep 2013 08:25:38 -0400 Date: Thu, 12 Sep 2013 14:25:34 +0200 From: Ingo Molnar To: Peter Zijlstra Cc: Linus Torvalds , Andi Kleen , Peter Anvin , Mike Galbraith , Thomas Gleixner , Arjan van de Ven , Frederic Weisbecker , Linux Kernel Mailing List , "linux-arch@vger.kernel.org" Subject: Re: [PATCH 0/7] preempt_count rework -v2 Message-ID: <20130912122534.GA18794@gmail.com> References: <20130910212509.GA18147@laptop.programming.kicks-ass.net> <20130911131323.GQ31370@twins.programming.kicks-ass.net> <20130911185944.GA1798@laptop.programming.kicks-ass.net> <20130912022040.GT31370@twins.programming.kicks-ass.net> <20130912115155.GV31370@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130912115155.GV31370@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2695 Lines: 64 * Peter Zijlstra wrote: > So the increase is there too, doing a objdump -D on them the first > difference is: > > 0000000000000660 : > 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 > 67e: 48 8b 5d f0 mov -0x10(%rbp),%rbx > 682: 4c 8b 65 f8 mov -0x8(%rbp),%r12 > 686: c9 leaveq > > vs.: > > 0000000000000660 : > 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 > 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 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-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/