17 Oct, 2007

2 commits

  • Repost of http://lkml.org/lkml/2007/8/10/472 made available by request.

    The locking used by get_random_bytes() can conflict with the
    preempt_disable() and synchronize_sched() form of RCU. This patch changes
    rcutorture's RNG to gather entropy from the new cpu_clock() interface
    (relying on interrupts, preemption, daemons, and rcutorture's reader
    thread's rock-bottom scheduling priority to provide useful entropy), and
    also adds and EXPORT_SYMBOL_GPL() to make that interface available to GPLed
    kernel modules such as rcutorture.

    Passes several hours of rcutorture.

    [ego@in.ibm.com: Use raw_smp_processor_id() in rcu_random()]
    Signed-off-by: Paul E. McKenney
    Cc: Ingo Molnar
    Signed-off-by: Gautham R Shenoy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     
  • This patch cleans up duplicate includes in
    kernel/

    Signed-off-by: Jesper Juhl
    Acked-by: Paul E. McKenney
    Reviewed-by: Satyam Sharma
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     

18 Jul, 2007

1 commit

  • Currently, the freezer treats all tasks as freezable, except for the kernel
    threads that explicitly set the PF_NOFREEZE flag for themselves. This
    approach is problematic, since it requires every kernel thread to either
    set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
    care for the freezing of tasks at all.

    It seems better to only require the kernel threads that want to or need to
    be frozen to use some freezer-related code and to remove any
    freezer-related code from the other (nonfreezable) kernel threads, which is
    done in this patch.

    The patch causes all kernel threads to be nonfreezable by default (ie. to
    have PF_NOFREEZE set by default) and introduces the set_freezable()
    function that should be called by the freezable kernel threads in order to
    unset PF_NOFREEZE. It also makes all of the currently freezable kernel
    threads call set_freezable(), so it shouldn't cause any (intentional)
    change of behaviour to appear. Additionally, it updates documentation to
    describe the freezing of tasks more accurately.

    [akpm@linux-foundation.org: build fixes]
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Nigel Cunningham
    Cc: Pavel Machek
    Cc: Oleg Nesterov
    Cc: Gautham R Shenoy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

09 May, 2007

4 commits


07 Mar, 2007

1 commit

  • rcutorture's module parameters currently use permissions of 0, so they
    don't show up in /sys/module/rcutorture/parameters. Change the permissions
    on all module parameters to world-readable (0444).

    rcutorture does all of its initialization and thread startup when loaded
    and relies on the parameters not changing during execution, so they should
    not permit writing. However, reading seems fine.

    Signed-off-by: Josh Triplett
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josh Triplett
     

31 Dec, 2006

1 commit


08 Dec, 2006

1 commit


04 Oct, 2006

11 commits


30 Sep, 2006

1 commit

  • rcu_torture_read_lock and rcu_bh_torture_read_lock acquire locks without
    releasing them, and the matching functions rcu_torture_read_unlock and
    rcu_bh_torture_read_unlock get called with the corresponding locks held and
    release them. Add lock annotations to these four functions so that sparse
    can check callers for lock pairing, and so that sparse will not complain
    about these functions since they intentionally use locks in this manner.

    Signed-off-by: Josh Triplett
    Acked-by: Paul McKenney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josh Triplett
     

28 Jun, 2006

3 commits


29 Mar, 2006

1 commit


26 Mar, 2006

1 commit

  • MODULE_PARM was actually breaking: recent gcc version optimize them out as
    unused. It's time to replace the last users, which are generally in the
    most unloved drivers anyway.

    Signed-off-by: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rusty Russell
     

24 Mar, 2006

1 commit

  • A long-running rcutorture test can overflow dmesg, so that the line
    containing the module parameters is lost. Although it is usually possible
    to retrieve this information from the log files, it is much better to just
    tag it onto the final success/failure line so that it may be easily found.
    This patch does just that.

    Signed-off-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     

01 Feb, 2006

1 commit

  • rcu_torture_lock is used in a softirq-unsafe manner, but it is also
    taken by rcu_torture_cb(), which may execute in softirq-context,
    resulting in potential deadlocks.

    The fix is to acquire rcu_torture_lock in a softirq-safe manner. With
    this fix applied, the rcu-torture code passes validation.

    Signed-off-by: Ingo Molnar
    Acked-by: Paul E. McKenney
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

09 Jan, 2006

3 commits


13 Dec, 2005

1 commit

  • While doing some test of RCU torture module, I hit a OOPS in rcu_do_batch,
    which was trying to processes callback of a module that was just removed.
    This is because we weren't waiting long enough for all callbacks to fire.

    Signed-off-by: Srivatsa Vaddagiri
    Cc: Dipankar Sarma
    Acked-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Srivatsa Vaddagiri
     

18 Nov, 2005

1 commit

  • One issue with the RCU torture test is that the current error flagging can
    be lost in dmesg. This patch adds a "SUCCESS"/"FAILURE" string to the line
    that flags the end of the test, where it can easily be seen with "dmesg |
    tail" at the end of the test. Also adds tests of architecture-specific
    memory barriers -- or, more likely, of the RCU torture test itself.

    Cc:
    Signed-off-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     

14 Nov, 2005

1 commit

  • Make the box usable for interactive work when running the RCU torture test,
    by renicing the RCU torture-test threads to +19 by default. Kthreads run
    at nice -5 by default.

    Signed-off-by: Ingo Molnar
    Acked-by: Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

31 Oct, 2005

1 commit

  • This patch is a rewrite of the one submitted on October 1st, using modules
    (http://marc.theaimsgroup.com/?l=linux-kernel&m=112819093522998&w=2).

    This rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an
    intense torture test of the RCU infratructure. This is needed due to the
    continued changes to the RCU infrastructure to accommodate dynamic ticks,
    CPU hotplug, realtime, and so on. Most of the code is in a separate file
    that is compiled only if the CONFIG variable is set. Documentation on how
    to run the test and interpret the output is also included.

    This code has been tested on i386 and ppc64, and an earlier version of the
    code has received extensive testing on a number of architectures as part of
    the PREEMPT_RT patchset.

    Signed-off-by: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney