lkml.org 
[lkml]   [2016]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: MD-RAID: Use seq_putc() in three status functions?
    From
    Date
    > 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 <raid1_status+0x9e>
    37b1: 80 3d 00 00 00 00 00 cmpb $0x0,0x0(%rip) # 37b8 <raid1_status+0x98>
    - 37b8: 0f 84 1d 01 00 00 je 38db <raid1_status+0x1bb>
    + 37b8: 0f 84 1b 01 00 00 je 38d9 <raid1_status+0x1b9>
    37be: 4c 89 ff mov %r15,%rdi
    37c1: 31 db xor %ebx,%ebx
    37c3: e8 00 00 00 00 callq 37c8 <raid1_status+0xa8>
    @@ -3404,42 +3404,43 @@
    3891: 85 c0 test %eax,%eax
    3893: 74 09 je 389e <raid1_status+0x17e>
    3895: 80 3d 00 00 00 00 00 cmpb $0x0,0x0(%rip) # 389c <raid1_status+0x17c>
    - 389c: 74 6e je 390c <raid1_status+0x1ec>
    + 389c: 74 6c je 390a <raid1_status+0x1ea>
    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 <raid1_status+0x198>
    38b8: e8 00 00 00 00 callq 38bd <raid1_status+0x19d>
    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 <raid1_status+0x1ac>
    - 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 <raid1_status+0x1c0>
    - 38e0: 84 c0 test %al,%al
    - 38e2: 0f 85 d6 fe ff ff jne 37be <raid1_status+0x9e>
    - 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 <raid1_status+0x1e2>
    - 3902: e8 00 00 00 00 callq 3907 <raid1_status+0x1e7>
    - 3907: e9 b2 fe ff ff jmpq 37be <raid1_status+0x9e>
    - 390c: e8 00 00 00 00 callq 3911 <raid1_status+0x1f1>
    - 3911: 84 c0 test %al,%al
    - 3913: 75 89 jne 389e <raid1_status+0x17e>
    - 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 <raid1_status+0x20f>
    - 392f: e8 00 00 00 00 callq 3934 <raid1_status+0x214>
    - 3934: e9 65 ff ff ff jmpq 389e <raid1_status+0x17e>
    - 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 <raid1_status+0x1aa>
    + 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 <raid1_status+0x1be>
    + 38de: 84 c0 test %al,%al
    + 38e0: 0f 85 d8 fe ff ff jne 37be <raid1_status+0x9e>
    + 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 <raid1_status+0x1e0>
    + 3900: e8 00 00 00 00 callq 3905 <raid1_status+0x1e5>
    + 3905: e9 b4 fe ff ff jmpq 37be <raid1_status+0x9e>
    + 390a: e8 00 00 00 00 callq 390f <raid1_status+0x1ef>
    + 390f: 84 c0 test %al,%al
    + 3911: 75 8b jne 389e <raid1_status+0x17e>
    + 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 <raid1_status+0x20d>
    + 392d: e8 00 00 00 00 callq 3932 <raid1_status+0x212>
    + 3932: e9 67 ff ff ff jmpq 389e <raid1_status+0x17e>
    + 3937: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
    + 393e: 00 00

    0000000000003940 <print_conf>:
    3940: e8 00 00 00 00 callq 3945 <print_conf+0x5>
    @@ -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

    \
     
     \ /
      Last update: 2016-10-18 20:23    [W:4.753 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site