Re: 2.6.33.[56]-rt23: howto create repeatable explosion in wakeup_next_waiter()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2010-07-07 at 07:03 -0700, Darren Hart wrote:
> On 07/07/2010 04:57 AM, Thomas Gleixner wrote:
> > Cc'ing Darren.
> >
> > On Wed, 7 Jul 2010, Mike Galbraith wrote:
> >
> 
> Hi Mike,
> 
> >> Greetings,
> >>
> >> Stress testing, looking to trigger RCU stalls, I've managed to find a
> >> way to repeatably create fireworks.  (got RCU stall, see attached)
> >>
> >> 1. download ltp-full-20100630.  Needs to be this version because of
> >> testcase bustage in earlier versions, and must be built with gcc>  4.3,
> >> else testcases will segfault due to a gcc bug.
> 
> Interesting, I had not hit any gcc specific issues with this. Can you 
> point me to the bug?

gcc-4.3 doesn't grok volatile inside a struct.  Workaround below.

Index: ltp-full-20090930/testcases/realtime/include/librttest.h
===================================================================
--- ltp-full-20090930.orig/testcases/realtime/include/librttest.h
+++ ltp-full-20090930/testcases/realtime/include/librttest.h
@@ -88,7 +88,7 @@ struct thread {
 	int flags;
 	int id;
 };
-typedef struct { volatile int counter; } atomic_t;
+typedef volatile struct { volatile int counter; } atomic_t;
 
 // flags for threads
 #define THREAD_START 1

> >> --- run.sh.org	2010-07-06 15:54:58.000000000 +0200
> >> +++ run.sh	2010-07-06 16:37:34.000000000 +0200
> >> @@ -22,7 +22,7 @@ make
> >>   # process to run realtime.  The remainder of the processes (if any)
> >>   # will run non-realtime in any case.
> >>
> >> -nthread=5000
> >> +nthread=500
> 
> Was this just to lighten the load, or was it required to reproduce?

Just to lighten it.

> Which architecture?

x64_64.

> Glibc version?

glibc-2.11.2-2.3

> I see kernel version is: 2.6.33.6-rt23, have you reproduced this on 
> earlier kernel versions as well? Any 2.6.31 rt kernel would be a good 
> data point.

Yes, both 2.6.31.14-rt21 and 2.6.29.6-rt24.

> Is this immediately reproducible for you?

Yes, nearly instant kaboom.

> I see a possibly fault occuring in the stack, if you run with 
> mlockall(), does the problem go away? (assuming not, but an easy thing 
> to test).

Nope, -m made no difference.

	-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux