lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080813163728.GC6593@linux.vnet.ibm.com>
Date:	Wed, 13 Aug 2008 09:37:28 -0700
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	Juergen Beisert <jbe@...gutronix.de>
Cc:	linux-rt-users@...r.kernel.org,
	Jürgen Mell <j.mell@...nline.de>,
	Thomas Gleixner <tglx@...utronix.de>,
	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <rostedt@...dmis.org>,
	Ingo Molnar <mingo@...e.hu>,
	Clark Williams <williams@...hat.com>,
	Peter Zijlstra <peterz@...radead.org>,
	Carsten Emde <ce@...g.ch>
Subject: Re: 2.6.26-rt1

On Wed, Aug 13, 2008 at 03:30:32PM +0200, Juergen Beisert wrote:
> On Freitag, 1. August 2008, Paul E. McKenney wrote:
> > On Wed, Jul 30, 2008 at 11:01:32AM +0200, Jürgen Mell wrote:
> > > On Wednesday, 30. July 2008, Thomas Gleixner wrote:
> > > > We are pleased to announce the 2.6.26-rt1 tree, which can be
> > > > downloaded from the location:
> > >
> > > I have tried the new kernel and have some good news and some bad news:
> > >
> > > The good news: The machine boots and seems to run without major problems.
> > >
> > > The bad news: It produces continuously lots of bug messages in the error
> > > logs (cf. attached dmesg.tgz). The error at rtmutex.c:743 was already
> > > present in 2.6.25-rt* when ACPI was enabled. The 'using smp_processor_id
> > > ()  in preemptible code' is new here with 2.6.26.
> > >
> > > Machine is an old Athlon XP (single core) on an EPOX mainboard with VIA
> > > chipset.
> > >
> > > If I can help with testing, please let me know.
> >
> > The following patch should clear things up.  It is against 2.6.25.8-rt7,
> > but should still apply.
> >
> > ------------------------------------------------------------------------
> >
> > Disable preemption around statistics for RCU boost and unboost calls.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@...ux.vnet.ibm.com>
> > ---
> >
> >  rcupreempt-boost.c |   20 ++++++++++++++++----
> >  1 file changed, 16 insertions(+), 4 deletions(-)
> >
> > diff -urpNa -X dontdiff linux-2.6.25.8-rt7/kernel/rcupreempt-boost.c
> > linux-2.6.25.8-rt7-preemptfix/kernel/rcupreempt-boost.c ---
> > linux-2.6.25.8-rt7/kernel/rcupreempt-boost.c	2008-06-24 14:14:52.000000000
> > -0700 +++
> > linux-2.6.25.8-rt7-preemptfix/kernel/rcupreempt-boost.c	2008-06-24
> > 14:38:59.000000000 -0700 @@ -205,11 +205,23 @@
> > RCU_BOOST_TRACE_FUNC_DECL(boost_readers)
> >  RCU_BOOST_TRACE_FUNC_DECL(try_unboost_readers)
> >  RCU_BOOST_TRACE_FUNC_DECL(unboost_readers)
> >  RCU_BOOST_TRACE_FUNC_DECL(over_taken)
> > +static void rcu_trace_boost_boost_called_preempt(void)
> > +{
> > +	preempt_disable();
> > +	rcu_trace_boost_boost_called(RCU_BOOST_ME);
> > +	preempt_enable();
> > +}
> > +static void rcu_trace_boost_unboost_called_preempt(void)
> > +{
> > +	preempt_disable();
> > +	rcu_trace_boost_unboost_called(RCU_BOOST_ME);
> > +	preempt_enable();
> > +}
> >  #else /* CONFIG_RCU_TRACE */
> >  /* These were created by the above macro "RCU_BOOST_TRACE_FUNC_DECL" */
> > -# define rcu_trace_boost_task_boost_called(rbd) do { } while (0)
> > +# define rcu_trace_boost_task_boost_called_preempt(rbd) do { } while (0)
> >  # define rcu_trace_boost_task_boosted(rbd) do { } while (0)
> > -# define rcu_trace_boost_boost_called(rbd) do { } while (0)
> > +# define rcu_trace_boost_boost_called_preempt(rbd) do { } while (0)
> >  # define rcu_trace_boost_try_boost(rbd) do { } while (0)
> >  # define rcu_trace_boost_boosted(rbd) do { } while (0)
> >  # define rcu_trace_boost_unboost_called(rbd) do { } while (0)
> > @@ -261,7 +273,7 @@ void __rcu_preempt_boost(void)
> >
> >  	WARN_ON(!current->rcu_read_lock_nesting);
> >
> > -	rcu_trace_boost_boost_called(RCU_BOOST_ME);
> > +	rcu_trace_boost_boost_called_preempt();
> >
> >  	/* check to see if we are already boosted */
> >  	if (unlikely(rcu_is_boosted(curr)))
> > @@ -313,7 +325,7 @@ void __rcu_preempt_unboost(void)
> >  	int prio;
> >  	unsigned long flags;
> >
> > -	rcu_trace_boost_unboost_called(RCU_BOOST_ME);
> > +	rcu_trace_boost_unboost_called_preempt();
> >
> >  	/* if not boosted, then ignore */
> >  	if (likely(!rcu_is_boosted(curr)))
> >
> Using this patch on top of 2.6.26-rt1 results into:
> 
> [...]
>  CC      kernel/rcupreempt-boost.o
> kernel/rcupreempt-boost.c: In function 'rcu_boost_task':
> kernel/rcupreempt-boost.c:249: error: implicit declaration of function 'rcu_trace_boost_task_boost_called'
> kernel/rcupreempt-boost.c: In function '__rcu_preempt_unboost':
> kernel/rcupreempt-boost.c:328: error: implicit declaration of function 'rcu_trace_boost_unboost_called_preempt'
> 
> when CONFIG_PREEMPT_RCU_BOOST is enabled and target is a PowerPC of
> type MPC5200B.

Ah, 2.6.26-rt1 took a different approach to fix the issue my patch
was targeted at.  Please accept my apologies for the noise!

The other thing to try would be Chirag Jog's patch sent out to
linux-rt-users on July 30.

						Thanx, Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ