Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761754AbcJ1UFf (ORCPT ); Fri, 28 Oct 2016 16:05:35 -0400 Received: from mout.web.de ([212.227.15.4]:61898 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761163AbcJ1UFc (ORCPT ); Fri, 28 Oct 2016 16:05:32 -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> <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: <69acd529-fc75-bd74-17ae-bedd8796e706@users.sourceforge.net> Date: Fri, 28 Oct 2016 22:04:33 +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: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:8UpDfEH3L4qXnUHqJj3Bww1NQuNC/+0DwwUp4w9Btr6ID+O19UB EylvfdZ1pIgVN3lUbvK+6liMjE8GqjaRNjlCTy+pXQ/yJQeMqoNG/Y5U4LQeGULFDK0a3nx LpQxoRSajTg+bXKEDf1Wry+tEeHG6N1Vmbq2A/0VAvnPDYIAw697m5vWVpcQzhtPn66ZMrT woX5gNjCc5iO+CAKYhipA== X-UI-Out-Filterresults: notjunk:1;V01:K0:ZJXTdXDQzHQ=:ZTB4MVBAJQgzazDX5HZ9Gb lnxXofpodcwbfAxkSpQo86krNxr2MYZqWGzGnvFVcy2x7UajFc3TxmY96r0IWd8toS8eMiAuu WBU9xKYSU/OLose/i4CbcjGFUW+JbvVoq37njzMWGSb/gqCPnt4fgNa16Vx6rRVm7uFuEdbWg pUbq1IWYZmFnI1JPDtU7PMqSjy1PdG41oN5+3QQVUkCPMXCOy+2of1LSbEeq9w9kvYhC5KOJL e90yO9bQCgr+hElOHdOfOFQ/QDIP+EhTZG/nz7i1T2gkXNU5QWYYj4tpXQHwnzJJcqZ4RsWHX S+gs9GSPMrKQWU9Lzg+JbQ/P6s3dTiO4ro1+a44RF6FExuPRljqoXP7IymYBVusDQHLXOkZ8Y TTZHHnwwTd6VpMiRrNcce2ucrPzYLbuSquRLJaVNo8ePRX6wQcwztk9h9Cio+O5RxN+ZJp3Wq k8M3Iut3Nad9JrLzE2adFJVAg94vHFVKTJ9kliiyBquro3d2IJnvc5j3uwBQLp1kcSi/zibls y5/xVBu0WdkbANH4VuXss4Bi/F4yuqYDgXujXcrHenX5cHW91I/dQmAulISdmsWz/ut4eNjm2 0JxlHGoXCgfgnCSxdmxblY5fdnqOucUgcSQuW+yZCey/p/AnowPRYzlUReNlCYUJJqCJDdsXm HFhV9ZRru+7MM2lmTy4STfNi8LbmMrbHxZ2Ow9K9s2TNlCFYp0VEtukKd2EjA63//STuB/Kzc rvFAI5YljFKjxVe+uzr7ozOWaJklgpimH+X5ml4iq01epDLJM1q44Yz9/ZQWTD87gQuZX0Tnw hg4an7R Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2024 Lines: 66 >>> So back to the original task for you: Show me in the generated output where the benefits are. I can offer another bit of information for this software development discussion. The following build settings were active in my "Makefile" for this Linux test case. … HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O0 -fomit-frame-pointer -std=gnu89 … The afffected source files can be compiled for the processor architecture "x86_64" by a tool like "GCC 6.2.1+r239849-1.5" from the software distribution "openSUSE Tumbleweed" with the following command example. my_original=${my_build_dir}unchanged/test/ \ && my_fixing=${my_build_dir}patched/test/ \ && mkdir -p ${my_original} ${my_fixing} \ && my_cc=/usr/bin/gcc-6 \ && my_module=drivers/md/raid1.s \ && git checkout next-20161014 \ && make -j6 O="${my_original}" CC="${my_cc}" HOSTCC="${my_cc}" allmodconfig "${my_module}" \ && git checkout next_usage_of_seq_putc_in_md_raid_1 \ && make -j6 O="${my_fixing}" CC="${my_cc}" HOSTCC="${my_cc}" allmodconfig "${my_module}" \ && diff -u "${my_original}${my_module}" "${my_fixing}${my_module}" > "${my_build_dir}assembler_code_comparison_$(date -I)_3.diff" The generated file got the size "25.4 KiB" this time. I guess that only the following two diff hunks are interesting then to show desired effects for the suggested software refactoring around data output of a single character (instead of a similar string). … @@ -4402,10 +4402,6 @@ .LC19: .string "%s" .zero 61 - .align 32 -.LC20: - .string "]" - .zero 62 .text .p2align 4,,15 .type raid1_status, @function @@ -4564,8 +4560,8 @@ movq $rcu_lock_map, %rdi #, call lock_release # movq %r14, %rdi # seq, - movq $.LC20, %rsi #, - call seq_printf # + movl $93, %esi #, + call seq_putc # addq $16, %rsp #, popq %rbx # popq %r12 # … * Is this kind of assembler code comparison useful to clarify relevant differences further? * Are any software development concerns left over for such a transformation? Regards, Markus