All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <dada1@cosmosbay.com>
To: Andi Kleen <ak@suse.de>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: [PATCH] small change to fget()
Date: Mon, 29 Mar 2004 11:37:53 +0200	[thread overview]
Message-ID: <4067EE71.4000205@cosmosbay.com> (raw)
In-Reply-To: <p7365co848r.fsf@nielsen.suse.de>

Hello all

This one liner patch permits to save 2 instructions in the fget() 
function, at least on x86_64 SMP (only one ref to current->files)

diff -Nru linux-2.6.2/fs/file_table.c linux-2.6.2-custom/fs/file_table.c
--- linux-2.6.2/fs/file_table.c     2004-02-04 17:59:43.000000000 +0100
+++ linux-2.6.2-custom/fs/file_table.c        2004-03-29 
11:26:42.170555000 +0200
@@ -198,7 +198,7 @@
        struct files_struct *files = current->files;

        spin_lock(&files->file_lock);
-       file = fcheck(fd);
+       file = fcheck_files(files,fd) ;
        if (file)
                get_file(file);
        spin_unlock(&files->file_lock);


The assembly code was (oprofile data included) :

ffffffff8016c3d0 <fget>: /* fget total: 921168  0.1624 */
 51191  0.0090 :ffffffff8016c3d0:       mov    %gs:0x0,%rax
 76621  0.0135 :ffffffff8016c3d9:       mov    0x7e8(%rax),%rsi
121592  0.0214 :ffffffff8016c3e0:       lock decb 0x4(%rsi)
 11278  0.0020 :ffffffff8016c3e4:       js     ffffffff8016c5e8 
<.text.lock.file_table+0x20>
122737  0.0216 :ffffffff8016c3ea:       mov    %gs:0x0,%rax
174870  0.0308 :ffffffff8016c3f3:       mov    0x7e8(%rax),%rcx
  2274 4.0e-04 :ffffffff8016c3fa:       xor    %eax,%eax
 77418  0.0137 :ffffffff8016c3fc:       cmp    0x8(%rcx),%edi
  3417 6.0e-04 :ffffffff8016c3ff:       jae    ffffffff8016c40b <fget+0x3b>
  8184  0.0014 :ffffffff8016c401:       mov    0x18(%rcx),%rax
 37585  0.0066 :ffffffff8016c405:       mov    %edi,%edx
  7357  0.0013 :ffffffff8016c407:       mov    (%rax,%rdx,8),%rax
  5817  0.0010 :ffffffff8016c40b:       test   %rax,%rax
 57910  0.0102 :ffffffff8016c40e:       je     ffffffff8016c414 <fget+0x44>
  3401 6.0e-04 :ffffffff8016c410:       lock incl 0x28(%rax)
  7729  0.0014 :ffffffff8016c414:       movb   $0x1,0x4(%rsi)
151787  0.0268 :ffffffff8016c418:       retq



And it is now :

 380:   65 48 8b 04 25 00 00    mov    %gs:0x0,%rax
 387:   00 00
 389:   48 8b 88 e8 07 00 00    mov    0x7e8(%rax),%rcx
 390:   f0 fe 49 04             lock decb 0x4(%rcx)
 394:   0f 88 ee 01 00 00       js     588 <.text.lock.file_table+0x20>
 39a:   31 c0                   xor    %eax,%eax
 39c:   3b 79 08                cmp    0x8(%rcx),%edi
 39f:   73 0a                   jae    3ab <fget+0x2b>
 3a1:   48 8b 41 18             mov    0x18(%rcx),%rax
 3a5:   89 fa                   mov    %edi,%edx
 3a7:   48 8b 04 d0             mov    (%rax,%rdx,8),%rax
 3ab:   48 85 c0                test   %rax,%rax
 3ae:   74 04                   je     3b4 <fget+0x34>
 3b0:   f0 ff 40 28             lock incl 0x28(%rax)
 3b4:   c6 41 04 01             movb   $0x1,0x4(%rcx)
 3b8:   c3                      retq


Thanks


  reply	other threads:[~2004-03-29  9:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-29  6:32 [PATCH] ppc32: Fix sector_t definition with CONFIG_LBD Benjamin Herrenschmidt
2004-03-29  7:03 ` Andrew Morton
     [not found]   ` <20040328230351.1a0d0e9c.akpm@osdl.org.suse.lists.linux.kernel>
2004-03-29  8:08     ` Andi Kleen
2004-03-29  9:37       ` Eric Dumazet [this message]
2004-03-29 13:18       ` Benjamin Herrenschmidt
2004-03-29 10:00         ` Andi Kleen
2004-03-29 13:10   ` Anton Blanchard
2004-03-29 13:19   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4067EE71.4000205@cosmosbay.com \
    --to=dada1@cosmosbay.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.