From: Subrata M. <su...@li...> - 2009-04-16 07:01:14
|
Thanks. Regards-- Subrata On Wed, 2009-04-15 at 23:36 +0800, CAI Qian wrote: > From: Subrata Modak <su...@li...> > Subject: Re: [LTP] fork05 test case fails due to optimization > Date: Mon, 13 Apr 2009 19:37:23 +0530 > > > On Sun, 2009-04-12 at 13:37 +0800, CAI Qian wrote: > >> From: CAI Qian <ca...@cc...> > >> Subject: Re: [LTP] fork05 test case fails due to optimization > >> Date: Sat, 11 Apr 2009 04:02:41 -0700 (PDT) > >> > >> > > >> > > >> > > >> > --- On Tue, 4/7/09, rohit verma <roh...@gm...> wrote: > >> > > >> >> From: rohit verma <roh...@gm...> > >> >> Subject: [LTP] fork05 test case fails due to optimization > >> >> To: ltp...@li... > >> >> Date: Tuesday, April 7, 2009, 5:57 PM > >> >> There is a change in compilation > >> >> mechanism in LTP from Feb 09 > >> >> distribution.The previous Make mechanism did not provide > >> >> any > >> >> optimization while compiling the fork05 test program and > >> >> the test used > >> >> to Pass . However the newer Makefile uses optimization > >> >> level 2 while > >> >> compiling, if this file is executed the test case fails .. > >> >> > >> > > >> > This is definitely a case. I can reproduce it on Fedora 10, so I have > >> > created a bug of it, and copied the author Ulrich Drepper, > >> > > >> > https://bugzilla.redhat.com/show_bug.cgi?id=495296 > >> > > >> > >> Ulrich Drepper has pointed out in the above bug report that this failure > >> was due to incorrect test code. > >> > >> The test code isn't correct. The compiler cannot look inside the asm > >> statements in main() and see that they are really necessary. Based on > >> the information given the compiler can drop some of them. > >> > >> Change all asms in main from > >> > >> asm(...) > >> > >> to > >> > >> asm volatile(...) > >> > >> and the code works fine. > >> > >> With the following patch, it works fine with and without compilation > >> optimization. > >> > >> Signed-off-by: CAI Qian <ca...@cc...> > > > > Thanks for the fix. But doesn´t apply for me :-) > > > > patching file testcases/kernel/syscalls/fork/fork05.c > > Hunk #1 FAILED at 178. > > 1 out of 1 hunk FAILED -- saving rejects to file > > testcases/kernel/syscalls/fork/fork05.c.rej > > > > Regards-- > > Subrata > > > > Please try to new patch. > > --- testcases/kernel/syscalls/fork/fork05.c.orig 2009-04-12 13:24:48.000000000 +0800 > +++ testcases/kernel/syscalls/fork/fork05.c 2009-04-12 13:26:28.000000000 +0800 > @@ -178,23 +178,23 @@ > > modify_ldt (1, &ldt0, sizeof (ldt0)); > > - asm ("movw %w0, %%fs" : : "q" (7)); > + asm volatile ("movw %w0, %%fs" : : "q" (7)); > > - asm ("movl %%fs:0, %0" : "=r" (lo)); > + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); > tst_resm(TINFO,"a = %d", lo); > > - asm ("pushl %%fs; popl %0" : "=q" (lo)); > + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); > tst_resm(TINFO,"%%fs = %#06hx", lo); > > - asm ("movl %0, %%fs:0" : : "r" (99)); > + asm volatile ("movl %0, %%fs:0" : : "r" (99)); > > pid = fork (); > > if (pid == 0) { > - asm ("pushl %%fs; popl %0" : "=q" (lo)); > + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); > tst_resm(TINFO,"%%fs = %#06hx", lo); > > - asm ("movl %%fs:0, %0" : "=r" (lo)); > + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); > tst_resm(TINFO,"a = %d", lo); > > if (lo != 99) > > > >> > >> --- ltp/testcases/kernel/syscalls/fork/fork05.c.orig 2009-04-12 13:24:48.000000000 +0800 > >> +++ ltp/testcases/kernel/syscalls/fork/fork05.c 2009-04-12 13:26:28.000000000 +0800 > >> @@ -178,23 +178,23 @@ > >> > >> modify_ldt (1, &ldt0, sizeof (ldt0)); > >> > >> - asm ("movw %w0, %%fs" : : "q" (7)); > >> + asm volatile ("movw %w0, %%fs" : : "q" (7)); > >> > >> - asm ("movl %%fs:0, %0" : "=r" (lo)); > >> + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); > >> tst_resm(TINFO,"a = %d", lo); > >> > >> - asm ("pushl %%fs; popl %0" : "=q" (lo)); > >> + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); > >> tst_resm(TINFO,"%%fs = %#06hx", lo); > >> > >> - asm ("movl %0, %%fs:0" : : "r" (99)); > >> + asm volatile ("movl %0, %%fs:0" : : "r" (99)); > >> > >> pid = fork (); > >> > >> if (pid == 0) { > >> - asm ("pushl %%fs; popl %0" : "=q" (lo)); > >> + asm volatile ("pushl %%fs; popl %0" : "=q" (lo)); > >> tst_resm(TINFO,"%%fs = %#06hx", lo); > >> > >> - asm ("movl %%fs:0, %0" : "=r" (lo)); > >> + asm volatile ("movl %%fs:0, %0" : "=r" (lo)); > >> tst_resm(TINFO,"a = %d", lo); > >> > >> if (lo != 99) > >> > >> > >> > CAI Qian > >> > > >> >> With Older Make mechanism > >> >> cc -Wall -I../../include -g -Wall > >> >> -I../../../../include -Wall > >> >> fork05.c -L../../../../lib -lltp -o fork05 > >> >> > >> >> With Newer Make mechanism > >> >> gcc -g -O2 -I../../include -g -Wall -I../../../../include > >> >> -Wall > >> >> fork05.c -L../../../../lib -lltp -o fork05 > >> >> > >> >> Note: If we compile the program in the same > >> >> directory(/testcases/kernel/syscalls/fork) ,the > >> >> optimization flag do > >> >> not come into picture and the test case passes. The > >> >> optimization is > >> >> set by some top level Makefile > >> >> > >> >> Regards, > >> >> Rohit > >> >> > >> >> ------------------------------------------------------------------------------ > >> >> This SF.net email is sponsored by: > >> >> High Quality Requirements in a Collaborative Environment. > >> >> Download a free trial of Rational Requirements Composer > >> >> Now! > >> >> http://p.sf.net/sfu/www-ibm-com > >> >> _______________________________________________ > >> >> Ltp-list mailing list > >> >> Ltp...@li... > >> >> https://lists.sourceforge.net/lists/listinfo/ltp-list > >> >> > >> > > >> > ------------------------------------------------------------------------------ > >> > This SF.net email is sponsored by: > >> > High Quality Requirements in a Collaborative Environment. > >> > Download a free trial of Rational Requirements Composer Now! > >> > http://p.sf.net/sfu/www-ibm-com > >> > _______________________________________________ > >> > Ltp-list mailing list > >> > Ltp...@li... > >> > https://lists.sourceforge.net/lists/listinfo/ltp-list > >> > >> ------------------------------------------------------------------------------ > >> This SF.net email is sponsored by: > >> High Quality Requirements in a Collaborative Environment. > >> Download a free trial of Rational Requirements Composer Now! > >> http://p.sf.net/sfu/www-ibm-com > >> _______________________________________________ > >> Ltp-list mailing list > >> Ltp...@li... > >> https://lists.sourceforge.net/lists/listinfo/ltp-list > > |