On Monday 03 August 2009 11:14:49 Serge E. Hallyn wrote: > Quoting Michal Simek ([email protected]): > > can you please to run clone01 syscall test on any x86 machine? I am > > getting fault there when I run it 10 times for example. > > The same problem I have on Microblaze. > > > > ./clone01 -c 10 > > clone01 1 TPASS : clone() returned 22738 > > clone01 1 TPASS : clone() returned 22740 > > clone01 1 TPASS : clone() returned 22742 > > clone01 1 TPASS : clone() returned 22748 > > clone01 1 TPASS : clone() returned 22750 > > clone01 1 TPASS : clone() returned 22752 > > clone01 1 TPASS : clone() returned 22754 > > clone01 1 TFAIL : clone() returned 134919589, errno = 22755 > > [mon...@monstr clone]$ clone01 1 TPASS : clone() returned 22744 > > clone01 1 TPASS : clone() returned 22746 > > All right I don't have the patiente to wade through the parse_opts > and usc_lib crap, but this is not a clone failure. What appears to > be happening is setup() at the top of clone01.c is calling > lib/parse_opts.c:usc_global_setup_hook(), with STD_COPIES set to the > count option you passed in. That forks of 10 copies of the test. > I don't know what happens with the actual loop then, but the reason > you get the error for the last clone test is that one of those > forked copies of clone01 (*not* one of the cloned children) exits, > and wait() catches that one. That is why wait() returned 22744, > which isn't any of the cloned children. > > So one stupid way of fixing this without dealing with the convoluted > setup junk would be to change the waitpid chunk of the code like so:
since there is no wait*() func that i'm aware of that says "only wait for children/siblings", we need to create a dedicated process group for each test. do we know if any LTP test relies on process groups via the -c option ? i highly doubt this, so i'd propose we add a call to setpgid() in the parse_opts code that does the forking so that every child is in its own process group (just like if -c isnt used at all). then the clone01 test should magically work without any changes as should any other test that uses wait*() funcs. -mike
signature.asc
Description: This is a digitally signed message part.
------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
