Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1034384AbcJRSVx (ORCPT ); Tue, 18 Oct 2016 14:21:53 -0400 Received: from mout.web.de ([212.227.17.12]:62035 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1034347AbcJRSVZ (ORCPT ); Tue, 18 Oct 2016 14:21:25 -0400 Subject: Re: MD-RAID: Use seq_putc() in three status functions? To: Hannes Reinecke , linux-raid@vger.kernel.org References: <566ABCD9.1060404@users.sourceforge.net> <1475771699.1914.10.camel@perches.com> <77fb6fdc-7480-8607-0af1-42f73c125b9d@users.sourceforge.net> <688764a4-072d-2faf-37ba-a222b190a5d9@suse.de> <59d71170-c48d-a084-c748-b6ab74a2bee4@users.sourceforge.net> <1e151094-e228-5307-ae2f-b376b31f5628@suse.de> <83e720c6-9037-a3c1-6e83-27505805f37f@users.sourceforge.net> <2cc42b2f-1f1a-e95c-91fa-54e1dd3b6d49@suse.de> <653e60ee-f862-8828-3e4f-498c7cc34bdc@users.sourceforge.net> <1476703920.2520.105.camel@petrovitsch.priv.at> <97f31b70-e3ff-f194-c753-54da1fe3e664@users.sourceforge.net> <57299b72-8e6b-0b92-4374-1b7a0907e810@suse.de> <05d0cade-7922-9d8a-a974-34b2cc9150fb@suse.de> <665cd40a-4562-a015-78c6-12976c12b626@suse.de> Cc: Bernd Petrovitsch , Christoph Hellwig , Guoqing Jiang , Jens Axboe , Joe Perches , Mike Christie , Neil Brown , Shaohua Li , Tomasz Majchrzak , LKML , kernel-janitors@vger.kernel.org, kbuild-all@01.org, ltp@lists.linux.it From: SF Markus Elfring Message-ID: Date: Tue, 18 Oct 2016 20:20:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <665cd40a-4562-a015-78c6-12976c12b626@suse.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:26zZvSFOwGjcJjUD/OW9DjoknW+9oQAxjIQnEbGF5z80K5XKKiB O0XXnG4SA/+yZ8+WrSldoh1skYlsztNMzq+F1mGKhEbU+ONbcqr8aA72pKnn9YBsCAx9tFz t5Fk9tfQe+ITVRbsXt9XeJoGcmVOrx63qDacy73E2W7icACx/ahKHnW7/OBVo6vtez49D/0 fv1jh6mNqBqqrA/0YTYlw== X-UI-Out-Filterresults: notjunk:1;V01:K0:zEZh7C8W/nA=:aTck7fbu7ndI4q+U0mDZLn FODezp/Ze7mlfSo9h+zYx8QD34O5TNRWwXwmrqbOjbUw4H/PoKaJCM+YJ8GR6+/Hu4t59FJcr WvouciuBd0TeEHTeA3bnmF7Wze/nU2V/40upo4ZoVdMCnzYLG1cAZfGkZ8K4Cnqi8s1VIbajO 5K9YKtTfkSIrSWNmatVDsgOUUoVpVl8TmeCGCpLRkB0RiQCipbo5yjKCdH0KrhDDA/TzIKcCV 4y27z8fcEb4gb1Va8S+oLQrPlT/XlUn1wVECXbxJ7ti4IJXio7gzQCcWycF1gX4UVjoxPtuTa x+NnjlQ7XtNO+M7+41xS/T/x/A5cbizNsu5pUzGodEr13OMxL1mwACy8nLAVtnGPpyRQLKQty lpg9RuzkcRQylSH/dVp2EdmDzFM2xBsfK+7b8DrmRIQ6HaGrH0Kw+o9gOzoyNG6kpF9Wjt8fJ VCVahr5wkYCVdcuPXT7cYy5oJ7HrAPR6nxKcZI0z9FfFb/0BxKGW1IFnZPmf7cfG7h1SmYJV9 CWjT+QrZBW92mub1XI0FUDzldWvg05+VFIBtO2ym9ufvVdIlDy8uQG4UE4EgktUYM9ltN/2OI kxqWRHfW7JtcOzpC9Bs/mY9SWe01hYKQ6mqMZgfWUVkM4a9p0NMtiBJD8hRW5WCX2hplwP2Qu +XBnf0Lxewf4171DSOlMtC7kR6fcRWhX8viCb7CCd6msfyQIiSMIftN/DR2+9HyT8cjpYNvvt myOlJXP21RN9GpNBnhFaqGDBVKI0f9LkdcysPRZeHfJTtsXk+DPKHTskbzMoB4UFRbtZ5AISW 1mJmuRV Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6540 Lines: 127 > So back to the original task for you: Show me in the generated output where the benefits are. I can offer a bit more information for this software development discussion. The afffected source files can be compiled for the processor architecture "x86_64" by a tool like "GCC 6.2.1+r239849-1.3" from the software distribution "openSUSE Tumbleweed" with the following command examples. git checkout next-20161014 && my_cc=/usr/bin/gcc-6 && make HOSTCC="${my_cc}" allmodconfig && make -j6 HOSTCC="${my_cc}" drivers/md/ git checkout next_usage_of_seq_putc_in_md_raid_1 && my_cc=/usr/bin/gcc-6 && make HOSTCC="${my_cc}" allmodconfig && make -j6 HOSTCC="${my_cc}" drivers/md/ The tool "objdump" from the software package "binutils 2.27-1.3" can be used to get corresponding disassemblies for a file like "drivers/md/raid1.obj" which can then be compared as follows. --- ../disassembly-md-raid1-next-20161014-1.txt 2016-10-18 18:00:12.341222741 +0200 +++ ../disassembly-md-raid1-seq_putc-1.txt 2016-10-18 18:03:54.135887333 +0200 @@ -3349,7 +3349,7 @@ 37ad: 85 c0 test %eax,%eax 37af: 74 0d je 37be 37b1: 80 3d 00 00 00 00 00 cmpb $0x0,0x0(%rip) # 37b8 - 37b8: 0f 84 1d 01 00 00 je 38db + 37b8: 0f 84 1b 01 00 00 je 38d9 37be: 4c 89 ff mov %r15,%rdi 37c1: 31 db xor %ebx,%ebx 37c3: e8 00 00 00 00 callq 37c8 @@ -3404,42 +3404,43 @@ 3891: 85 c0 test %eax,%eax 3893: 74 09 je 389e 3895: 80 3d 00 00 00 00 00 cmpb $0x0,0x0(%rip) # 389c - 389c: 74 6e je 390c + 389c: 74 6c je 390a 389e: 48 c7 c2 00 00 00 00 mov $0x0,%rdx 38a5: be 01 00 00 00 mov $0x1,%esi 38aa: 48 c7 c7 00 00 00 00 mov $0x0,%rdi 38b1: 65 ff 0d 00 00 00 00 decl %gs:0x0(%rip) # 38b8 38b8: e8 00 00 00 00 callq 38bd 38bd: 4c 89 f7 mov %r14,%rdi - 38c0: 48 c7 c6 00 00 00 00 mov $0x0,%rsi - 38c7: e8 00 00 00 00 callq 38cc - 38cc: 48 83 c4 10 add $0x10,%rsp - 38d0: 5b pop %rbx - 38d1: 41 5c pop %r12 - 38d3: 41 5d pop %r13 - 38d5: 41 5e pop %r14 - 38d7: 41 5f pop %r15 - 38d9: 5d pop %rbp - 38da: c3 retq - 38db: e8 00 00 00 00 callq 38e0 - 38e0: 84 c0 test %al,%al - 38e2: 0f 85 d6 fe ff ff jne 37be - 38e8: 48 c7 c2 00 00 00 00 mov $0x0,%rdx - 38ef: be 69 03 00 00 mov $0x369,%esi - 38f4: 48 c7 c7 00 00 00 00 mov $0x0,%rdi - 38fb: c6 05 00 00 00 00 01 movb $0x1,0x0(%rip) # 3902 - 3902: e8 00 00 00 00 callq 3907 - 3907: e9 b2 fe ff ff jmpq 37be - 390c: e8 00 00 00 00 callq 3911 - 3911: 84 c0 test %al,%al - 3913: 75 89 jne 389e - 3915: 48 c7 c2 00 00 00 00 mov $0x0,%rdx - 391c: be 9c 03 00 00 mov $0x39c,%esi - 3921: 48 c7 c7 00 00 00 00 mov $0x0,%rdi - 3928: c6 05 00 00 00 00 01 movb $0x1,0x0(%rip) # 392f - 392f: e8 00 00 00 00 callq 3934 - 3934: e9 65 ff ff ff jmpq 389e - 3939: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 38c0: be 5d 00 00 00 mov $0x5d,%esi + 38c5: e8 00 00 00 00 callq 38ca + 38ca: 48 83 c4 10 add $0x10,%rsp + 38ce: 5b pop %rbx + 38cf: 41 5c pop %r12 + 38d1: 41 5d pop %r13 + 38d3: 41 5e pop %r14 + 38d5: 41 5f pop %r15 + 38d7: 5d pop %rbp + 38d8: c3 retq + 38d9: e8 00 00 00 00 callq 38de + 38de: 84 c0 test %al,%al + 38e0: 0f 85 d8 fe ff ff jne 37be + 38e6: 48 c7 c2 00 00 00 00 mov $0x0,%rdx + 38ed: be 69 03 00 00 mov $0x369,%esi + 38f2: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 38f9: c6 05 00 00 00 00 01 movb $0x1,0x0(%rip) # 3900 + 3900: e8 00 00 00 00 callq 3905 + 3905: e9 b4 fe ff ff jmpq 37be + 390a: e8 00 00 00 00 callq 390f + 390f: 84 c0 test %al,%al + 3911: 75 8b jne 389e + 3913: 48 c7 c2 00 00 00 00 mov $0x0,%rdx + 391a: be 9c 03 00 00 mov $0x39c,%esi + 391f: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 3926: c6 05 00 00 00 00 01 movb $0x1,0x0(%rip) # 392d + 392d: e8 00 00 00 00 callq 3932 + 3932: e9 67 ff ff ff jmpq 389e + 3937: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) + 393e: 00 00 0000000000003940 : 3940: e8 00 00 00 00 callq 3945 @@ -11134,7 +11135,7 @@ 0000000000000000 <_GLOBAL__sub_D_65535_0_raid1.c>: 0: 55 push %rbp - 1: be 35 00 00 00 mov $0x35,%esi + 1: be 34 00 00 00 mov $0x34,%esi 6: 48 c7 c7 00 00 00 00 mov $0x0,%rdi d: 48 89 e5 mov %rsp,%rbp 10: e8 00 00 00 00 callq 15 <_GLOBAL__sub_D_65535_0_raid1.c+0x15> @@ -11145,7 +11146,7 @@ 0000000000000000 <_GLOBAL__sub_I_65535_1_raid1.c>: 0: 55 push %rbp - 1: be 35 00 00 00 mov $0x35,%esi + 1: be 34 00 00 00 mov $0x34,%esi 6: 48 c7 c7 00 00 00 00 mov $0x0,%rdi d: 48 89 e5 mov %rsp,%rbp 10: e8 00 00 00 00 callq 15 <_GLOBAL__sub_I_65535_1_raid1.c+0x15> Does this kind of data display contain differences which are worth for further considerations? Regards, Markus