From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Nigel Cunningham <nigel@nigel.suspend2.net>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu, tglx@linutronix.de,
dipankar@in.ibm.com, tytso@us.ibm.com, dvhltc@us.ibm.com,
oleg@tv-sign.ru, twoerner.k@gmail.com, josh@freedesktop.org,
billh@gnuppy.monkey.org, nielsen.esben@googlemail.com,
corbet@lwn.net
Subject: Re: [RFC PATCH -rt 2/2] RCU priority boosting additions to rcutorture
Date: Wed, 31 Jan 2007 18:31:49 -0800 [thread overview]
Message-ID: <20070201023149.GV2574@linux.vnet.ibm.com> (raw)
In-Reply-To: <1170295936.32500.1.camel@nigel.suspend2.net>
On Thu, Feb 01, 2007 at 01:12:16PM +1100, Nigel Cunningham wrote:
> Hi Paul.
>
> On Wed, 2007-01-31 at 17:26 -0800, Paul E. McKenney wrote:
> > This patch adds an optional preemption kernel thread to the rcutorture
> > tests. This thread sets itself to a low RT priority and chews up CPU
> > in 10-second bursts, verifying that grace periods progress during this
> > 10-second interval. Passes RCU torture testing on a 4-CPU (a pair of
> > 2-CPU dies) 64-bit Xeon system.
>
> [...]
>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > +static int rcu_torture_preempt(void *arg)
> > +{
> > + int completedstart;
> > + int err;
> > + time_t gcstart;
> > + struct sched_param sp;
> > +
> > + sp.sched_priority = MAX_RT_PRIO - 1;
> > + err = sched_setscheduler(current, SCHED_RR, &sp);
> > + if (err != 0)
> > + printk(KERN_ALERT "rcu_torture_preempt() priority err: %d\n",
> > + err);
> > + current->flags |= PF_NOFREEZE;
> > +
> > + do {
> > + completedstart = rcu_torture_completed();
> > + gcstart = xtime.tv_sec;
> > + while ((xtime.tv_sec - gcstart < 10) &&
> > + (rcu_torture_completed() == completedstart))
> > + cond_resched();
> > + if (rcu_torture_completed() == completedstart)
> > + rcu_torture_preempt_errors++;
> > + schedule_timeout_interruptible(HZ);
> > + } while (!kthread_should_stop());
> > + return 0;
> > +}
>
> Does it need to be NOFREEZE? I would think that it should be frozen
> during a suspend/hibernate.
Good to hear from you, Nigel!
Should indeed be OK to freeze during suspend/hibernate. Will my
schedule_timeout_interruptible() be sufficient to allow the freeze
to happen, or do I need to add an explicit try_to_freeze()?
Ah, and I probably need to use the same trick that mtd_blktrans_thread()
does to avoid having all my sleeps killed of by an errant signal:
spin_lock_irq(¤t->sighand->siglock);
sigfillset(¤t->blocked);
recalc_sigpending();
spin_unlock_irq(¤t->sighand->siglock);
Or is such paranoia unnecessary?
Thanx, Paul
next prev parent reply other threads:[~2007-02-01 2:32 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-01 1:21 [RFC PATCH -rt 0/2] RCU priority boosting that survives vicious testing Paul E. McKenney
2007-02-01 1:24 ` [RFC PATCH -rt 1/2] " Paul E. McKenney
2007-02-01 8:23 ` Ingo Molnar
2007-02-02 15:56 ` Paul E. McKenney
2007-02-01 1:26 ` [RFC PATCH -rt 2/2] RCU priority boosting additions to rcutorture Paul E. McKenney
2007-02-01 2:12 ` Nigel Cunningham
2007-02-01 2:31 ` Paul E. McKenney [this message]
2007-02-01 2:42 ` Nigel Cunningham
2007-02-01 5:46 ` Paul E. McKenney
2007-02-01 22:13 ` Nigel Cunningham
-- strict thread matches above, loose matches on Subject: below --
2007-01-25 2:11 [RFC PATCH -rt 0/2] RCU priority boosting that survives semi-vicious testing Paul E. McKenney
2007-01-25 2:14 ` [RFC PATCH -rt 1/2] " Paul E. McKenney
2007-01-25 2:23 ` [RFC PATCH -rt 2/2] RCU priority boosting additions to rcutorture Paul E. McKenney
2007-01-25 8:47 ` Josh Triplett
2007-01-25 18:01 ` Paul E. McKenney
2007-01-25 19:06 ` Josh Triplett
2007-01-26 1:52 ` Paul E. McKenney
2007-01-26 6:29 ` Josh Triplett
2007-01-29 2:11 ` Paul E. McKenney
2007-01-29 6:05 ` Josh Triplett
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=20070201023149.GV2574@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=billh@gnuppy.monkey.org \
--cc=corbet@lwn.net \
--cc=dipankar@in.ibm.com \
--cc=dvhltc@us.ibm.com \
--cc=josh@freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=nielsen.esben@googlemail.com \
--cc=nigel@nigel.suspend2.net \
--cc=oleg@tv-sign.ru \
--cc=tglx@linutronix.de \
--cc=twoerner.k@gmail.com \
--cc=tytso@us.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.