lkml.org 
[lkml]   [2010]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 09/10] fs: Remove unlikely() from fget_light()
    From: Steven Rostedt <srostedt@redhat.com>

    There's an unlikely() in fget_light() that assumes the file ref count
    will be 1. Running the annotate branch profiler on a desktop that is
    performing daily tasks (running firefox, evolution, xchat and is also part
    of a distcc farm), it shows that the ref count is not 1 that often.

    correct incorrect % Function File Line
    ------- --------- - -------- ---- ----
    1035099358 6209599193 85 fget_light file_table.c 315

    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    fs/file_table.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/fs/file_table.c b/fs/file_table.c
    index c3dee38..c3e89ad 100644
    --- a/fs/file_table.c
    +++ b/fs/file_table.c
    @@ -311,7 +311,7 @@ struct file *fget_light(unsigned int fd, int *fput_needed)
    struct files_struct *files = current->files;

    *fput_needed = 0;
    - if (likely((atomic_read(&files->count) == 1))) {
    + if (atomic_read(&files->count) == 1) {
    file = fcheck_files(files, fd);
    } else {
    rcu_read_lock();
    --
    1.7.2.3



    \
     
     \ /
      Last update: 2010-12-07 03:17    [W:0.019 / U:63.936 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site