lkml.org 
[lkml]   [2008]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Make rcutorture more vicious: reinstate boot-time testing

    * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:

    > Hello again!
    >
    > This patch re-institutes the ability to build rcutorture directly into
    > the Linux kernel. The reason that this capability was removed was
    > that this could result in your kernel being pretty much useless, as
    > rcutorture would be running starting from early boot. This problem
    > has been avoided by (1) making rcutorture run only three seconds of
    > every six by default, (2) adding a CONFIG_RCU_TORTURE_TEST_RUNNABLE
    > that permits rcutorture to be quiesced at boot time, and (3) adding a
    > sysctl in /proc named /proc/sys/kernel/rcutorture_runnable that
    > permits rcutorture to be quiesced and unquiesced when built into the
    > kernel.
    >
    > Please note that this /proc file is -not- available when rcutorture is
    > built as a module. Please also note that to get the earlier
    > take-no-prisoners behavior, you must use the boot command line to set
    > rcutorture's "stutter" parameter to zero.
    >
    > The rcutorture quiescing mechanism is currently quite crude: loops in
    > each rcutorture process that poll a global variable once per tick.
    > Suggestions for improvement are welcome. The default action will be
    > to reduce the polling rate to a few times per second.

    applied to tip/core/rcu - thanks Paul!

    FYI, yesterday's rcutorture-stutter feature survived a few hundred
    random bootup tests in -tip testing already.

    a possible area for enhancement would be the following code:

    static void
    rcu_stutter_wait(void)
    {
    while (stutter_pause_test || !rcutorture_runnable)
    schedule_timeout_interruptible(1);
    }

    will cause HZ number of IRQs on nohz systems, even if rcutorture is
    disabled. While it's fine to poll if rcutorture_runnable==1, the sleep
    should be at least 1 second when !rcutorture_runnable.

    [ Or it might even make sense to completely stop the threads from a
    sysctl handler - to make it event-driven and to cause no extra IRQs at
    all when rcutorture is disabled via /proc. ]

    Ingo


    \
     
     \ /
      Last update: 2008-06-19 11:33    [W:0.048 / U:60.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site