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

Attachment: 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

Reply via email to