> -----Original Message-----
> From: Garrett Cooper [mailto:yaneg...@gmail.com]
> Sent: Friday, August 13, 2010 3:35 PM
> To: Mitani
> Cc: ltp-list@lists.sourceforge.net; 當座 健市
> Subject: Re: [LTP] [PATCH] fix "hugeshmat01" test
> 
> 2010/8/9 Mitani <mit...@ryobi.co.jp>:
> > Hi,
> >
> > I tried to run hugeshmat01 testcase, but it failed.
> > This testcase failed in following systems.
> >   - RHEL5.5-ia64
> >   - RHEL4.8-x86_64
> >   - RHEL4.8-ia64
> >
> > I used latest git:
> >   ltp-dev-7c67a09a10268b5f9f503e0254f1f0f9f5ac2b69.tar.gz
> > This testcase failed also in previous gits.
> >
> >
> > RHEL5.5-ia64 log:
> > ------------
> > hugeshmat01    1  TPASS  :  conditions and functionality are
> correct
> > hugeshmat01    2  TFAIL  :  hugeshmat01 call failed - errno = 22 :
> Invalid
> > argument
> > hugeshmat01    3  TBROK  :  Remaining cases broken
> > ------------
> >
> > It is caused by "EINVAL" failure of shmat().
> >
> > ---(hugeshmat01.c)---------
> > [...]
> >                for (i=0; i<TST_TOTAL; i++) {
> >
> >                        /*
> >                         * Use TEST macro to make the call
> >                         */
> >                        errno = 0;
> >                        addr = shmat(*(TC[i].shmid), (void
> *)(TC[i].addr),
> >                                   TC[i].flags);
> > [...]
> > ------------
> >
> > In second loop (i=1), arguments of shemat() are followings:
> >
> >   shmat(id, 0x10000000eee, SHM_RND)
> >
> > This test expects that the return value of shmat() is rounded down
> to
> > a multiple of SHMLBA.
> > But shmat() failed in some systems.
> > I deduced that "0x10000000eee" address may be outside of hugepages
> area.
> >
> > So I used the return value of first loop's shmat() instead of fixed
> > address ("0x10000000eee").
> > And the test succeeded.
> 
> The question I have to pose is: why would it do this if the other
> address was deallocated?
> 
> Thanks,
> -Garrett

Hi,

"hugeshmat01" test has three fase tests.
In these tests, second one failed in my several x64_64 and ia64 
architecture machines.

The first is the test for shmat() with 0 address in 2nd argument.
The second is the test for shmat() with unaligned address in 2nd argument.

In the first test, it is expected that 0 addressed shmat() returns 
with new aligned address.
In the second test, it is expected that unaligned addressed shmat()
returns with aligned address.

This second test uses the fixed address "0x10000000eee" for unaligned 
address.
When a fixed address was specified, this address may be the address 
which other processes use depending on a case. This may be out of 
user space.

The dynamic address gotten by the first test's shmget() is the address 
without such a risk, I think.
I performed this revision to reduce the risk of the second test 
by reusing a address gotten by the first test.


Thank you--

-Tomonori Mitani



------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to