15 May, 2010

3 commits

  • It has not triggered in almost a decade. Time to get rid of it...

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Currently RPC performance metrics that tabulate elapsed time use
    jiffies time values. This is problematic on systems that use slow
    jiffies (for instance 100HZ systems built for paravirtualized
    environments). It is also a problem for computing precise latency
    statistics for advanced network transports, such as InfiniBand,
    that can have round-trip latencies significanly faster than a single
    clock tick.

    For the RPC client, adopt the high resolution time stamp mechanism
    already used by the network layer and blktrace: ktime.

    We use ktime format time stamps for all internal computations, and
    convert to milliseconds for presentation. As a result, we need only
    addition operations in the performance critical paths; multiply/divide
    is required only for presentation.

    We could report RTT metrics in microseconds. In fact the mountstats
    format is versioned to accomodate exactly this kind of interface
    improvement.

    For now, however, we'll stay with millisecond precision for
    presentation to maintain backwards compatibility with the handful of
    currently deployed user space tools. At a later point, we'll move to
    an API such as BDI_STATS where a finer timestamp precision can be
    reported.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Also have it return an ERR_PTR(-ENOMEM) instead of a null pointer.

    Reviewed-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

16 Dec, 2009

2 commits


11 Sep, 2009

1 commit


13 Jul, 2009

1 commit

  • * Remove smp_lock.h from files which don't need it (including some headers!)
    * Add smp_lock.h to files which do need it
    * Make smp_lock.h include conditional in hardirq.h
    It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

    This will make hardirq.h inclusion cheaper for every PREEMPT=n config
    (which includes allmodconfig/allyesconfig, BTW)

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

18 Jun, 2009

1 commit


11 Mar, 2009

1 commit

  • We should probably not be testing any flags after we've cleared the
    RPC_TASK_RUNNING flag, since rpc_make_runnable() is then free to assign the
    rpc_task to another workqueue, which may then destroy it.

    We can fix any races with rpc_make_runnable() by ensuring that we only
    clear the RPC_TASK_RUNNING flag while holding the rpc_wait_queue->lock that
    the task is supposed to be sleeping on (and then checking whether or not
    the task really is sleeping).

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

16 Jul, 2008

1 commit


10 Jul, 2008

1 commit


15 Mar, 2008

2 commits


29 Feb, 2008

5 commits


26 Feb, 2008

5 commits


01 Feb, 2008

1 commit

  • * 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)
    Remove commented-out code copied from NFS
    NFS: Switch from intr mount option to TASK_KILLABLE
    Add wait_for_completion_killable
    Add wait_event_killable
    Add schedule_timeout_killable
    Use mutex_lock_killable in vfs_readdir
    Add mutex_lock_killable
    Use lock_page_killable
    Add lock_page_killable
    Add fatal_signal_pending
    Add TASK_WAKEKILL
    exit: Use task_is_*
    signal: Use task_is_*
    sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL
    ptrace: Use task_is_*
    power: Use task_is_*
    wait: Use TASK_NORMAL
    proc/base.c: Use task_is_*
    proc/array.c: Use TASK_REPORT
    perfmon: Use task_is_*
    ...

    Fixed up conflicts in NFS/sunrpc manually..

    Linus Torvalds
     

30 Jan, 2008

8 commits


29 Jan, 2008

1 commit

  • Many-many code in the kernel initialized the timer->function
    and timer->data together with calling init_timer(timer). There
    is already a helper for this. Use it for networking code.

    The patch is HUGE, but makes the code 130 lines shorter
    (98 insertions(+), 228 deletions(-)).

    Signed-off-by: Pavel Emelyanov
    Acked-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     

07 Dec, 2007

1 commit


20 Oct, 2007

1 commit

  • The task_struct->pid member is going to be deprecated, so start
    using the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in
    the kernel.

    The first thing to start with is the pid, printed to dmesg - in
    this case we may safely use task_pid_nr(). Besides, printks produce
    more (much more) than a half of all the explicit pid usage.

    [akpm@linux-foundation.org: git-drm went and changed lots of stuff]
    Signed-off-by: Pavel Emelyanov
    Cc: Dave Airlie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Emelyanov
     

10 Oct, 2007

1 commit


08 Aug, 2007

1 commit

  • The commit 4ada539ed77c7a2bbcb75cafbbd7bd8d2b9bef7b lead to the unpleasant
    possibility of an asynchronous rpc_task being required to call
    rpciod_down() when it is complete. This again means that the rpciod
    workqueue may get to call destroy_workqueue on itself -> hang...

    Change rpciod_up/rpciod_down to just get/put the module, and then
    create/destroy the workqueues on module load/unload.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

20 Jul, 2007

1 commit

  • Slab destructors were no longer supported after Christoph's
    c59def9f222d44bb7e2f0a559f2906191a0862d7 change. They've been
    BUGs for both slab and slub, and slob never supported them
    either.

    This rips out support for the dtor pointer from kmem_cache_create()
    completely and fixes up every single callsite in the kernel (there were
    about 224, not including the slab allocator definitions themselves,
    or the documentation references).

    Signed-off-by: Paul Mundt

    Paul Mundt
     

11 Jul, 2007

2 commits