From: Dan K. <dk...@ix...> - 2002-05-16 00:09:26
Attachments:
mallocstress.c
|
testcases/kernel/mem/mtest07/mallocstress.c had some problems. 1. Lots of compiler warnings. 2. Gave false failures with > 30 threads. 3. Lots of duplicated code. 4. Confused design probably never did what it intended. 5. Could abort improperly if anchor malloc failed due to memory pressure from other threads. In other words, it was not up to snuff, and it caused me to waste a fair bit of time tracking down a false failure. I suppose this is why it's not built by default... but I didn't notice that when I went looking for a malloc stress test. Here's a cleaned up version that is simpler, compiles properly at least on 32 bit machines, and as a bonus, tests whether pthread_create fails with EINTR, which is expressly verboten by SUSv3; see http://www.opengroup.org/onlinepubs/007904975/functions/pthread_create.html (It does fail like that with 400 threads on my dual P4 machine.) How's it look? - Dan |
From: Paul L. <pl...@au...> - 2002-05-16 13:10:54
|
On Wed, 2002-05-15 at 18:57, Dan Kegel wrote: > Here's a cleaned up version that is simpler, compiles > properly at least on 32 bit machines, and as a bonus, > tests whether pthread_create fails with EINTR, which is expressly > verboten by SUSv3; see > http://www.opengroup.org/onlinepubs/007904975/functions/pthread_create.html > (It does fail like that with 400 threads on my dual P4 machine.) > > How's it look? Seems to hang on my machine. I'll take a look. -Paul Larson |
From: Paul L. <pl...@au...> - 2002-05-16 16:32:37
|
On Thu, 2002-05-16 at 08:01, Paul Larson wrote: > On Wed, 2002-05-15 at 18:57, Dan Kegel wrote: > > > Here's a cleaned up version that is simpler, compiles > > properly at least on 32 bit machines, and as a bonus, > > tests whether pthread_create fails with EINTR, which is expressly > > verboten by SUSv3; see > > http://www.opengroup.org/onlinepubs/007904975/functions/pthread_create.html > > (It does fail like that with 400 threads on my dual P4 machine.) > > > > How's it look? > Seems to hang on my machine. I'll take a look. > > -Paul Larson Ok, I think I found the hang problem. It seems that you are doing a plain old exit() out of main if pthread_create() fails. I've seen this cause problems before, and the only solution I've ever seen to it is ugly but works, use _exit() instead. In any case though, you don't see any error messages through the gobs of spam. Manoj, is there any chance we could get you to make the spam optional with a debug flag or something? And if it's convenient, also use the test harness features (test_rsm, test_brk, TPASS, TFAIL, etc) so that we get consistant output with other test programs? If you or someone else doesn't have time, let me know and I might be able to do it. Thanks, Paul Larson |
From: Nathan S. <ns...@sg...> - 2002-05-16 14:48:13
|
On Wed, May 15, 2002 at 04:57:15PM -0700, Dan Kegel wrote: > Here's a cleaned up version that is simpler, compiles > properly at least on 32 bit machines, and as a bonus, > tests whether pthread_create fails with EINTR, which is expressly > verboten by SUSv3; see > http://www.opengroup.org/onlinepubs/007904975/functions/pthread_create.html > (It does fail like that with 400 threads on my dual P4 machine.) > > How's it look? I think it looks better. I just finished a run with 600 threads and 5 loops on a 2p ia64 box. It took a long time but finished without errors. There are still a few compiler warnings because of some int to pointer conversion. I'm not sure what the proper way to fix that is, but I think it's livable for checkin. The only think I didn't like was bumping the default number of threads to 400. My general rule is to keep the default test lite and runnable on most systems (new and old). The test already has command line options to crank up the number of threads. I'm guessing you just left in some debugging code. -- Nate Straz ns...@sg... sgi, inc http://www.sgi.com/ Linux Test Project http://ltp.sf.net/ |
From: Nathan S. <ns...@sg...> - 2002-05-28 18:44:41
|
I committed the changes to mallocstress.c to CVS. -- Nate Straz ns...@sg... sgi, inc http://www.sgi.com/ Linux Test Project http://ltp.sf.net/ |