public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox