On Fri, 2008-05-16 at 22:19 +0200, Helge Deller wrote:
> On Friday 16 May 2008, Helge Deller wrote:
> > On Wednesday 14 May 2008, Subrata Modak wrote:
> > > On Wed, 2008-05-14 at 16:26 +0800, Roy Lee wrote:
> > > > Hi,
> > > >
> > > > Is it necessary for the following testcases to attach their shm to a
> > > > 'specific address' rather than NULL?
> > > >
> > > > testcases/kernel/mem/shmt02.c
> > > > testcases/kernel/mem/shmt04.c
> > > > testcases/kernel/mem/shmt05.c
> > > > testcases/kernel/mem/shmt06.c
> > > > testcases/kernel/mem/shmt07.c
> > >
> > > I hope you are talking about:
> > >
> > > ltp/testcases/kernel/mem/shmt
> > >
> > > series of test cases. Mike did some cleanup on them => Tue Mar 13
> > > 20:15:16 2007 UTC. Also, i saw some hppa support added by Helge Deller.
> >
> > Hello Roy,
> >
> > Yes, I added the HPPA/parisc support and wondered myself.
> > I think in a few tests all architectures could use NULL.
> > Let's see:
> >
> > shm02.c:
> > #if defined (__ia64__) || defined (__ARM_ARCH_4T__) || defined(__hppa__)
> > cp = (char *)shmat(shmid, (void *)NULL, 0);
> > #else
> > cp = (char *)shmat(shmid, (void *)0x80000, 0);
> > #endif
> >
> > the test checks if shmat() works in general.
> > For i386 it's tried to attach memory at 0x80000.
> > This only works sucessfully, if the executable hasn't mapped memory there
> > yet (e.g. code/text, data or stack).
> > On HPPA the 0x80000 is used already by code or data segments, which is why
> > on HPPA I choosed NULL (=> map to any address).
> > I assume, that all architectures could use NULL here without breaking the
> > testcase.
> >
> > shm04.c:
> > -> I think all architectures should use NULL here.
> >
> > shm05.c:
> > A little bit more complicated.
> > Test is, that the second shared mem area should overlap with the first
> > memory area.
> > This means:
> > -> I think all architectures should use NULL in the first shmat() call
> > -> then the second shmat() should map e.g. at (cp+PAGESIZE) [cp+PAGESIZE
> > should be smaller than SIZE]
> > (One note: HPPA can only map at specific page addresses/offsets. E.g.
> > mapping to cp+2048 won't work and I assume this is true for IA64 as well..)
> >
> > shm06.c:
> > Test is about, that shmat() can map at different(!) addresses.
> > Pretty much platform dependend. I wouldn't touch the current code...
> >
> > shm07.c:
> > -> I think every architecture could use NULL here, without breaking the
> > logic of the test.
>
> Hello Subrata,
>
> I see Roy's patch was already checked in.
> In principle I agree with the patch, but a few things are wrong now and IMHO
> does not fulfill what it should test any longer.
>
> shm05.c -> see my (untested!!!) patch below.
> Some architectures can only map at specific offsets.
> Current version "sucessfully" fails, because e.g. hppa can't map at cp+4096.
> So, it's not failing because the memory regions overlap, although that was
> intended to be tested...
>
>
> shm06.c now does basically the same test as shm04.c ?!?
> Doesn't make sense...
> I would revert the patch for shm06, but maybe others think different????
>
> Other patches seem ok, although I haven't looked too deep into them yet...
>
> Helge
>
Helge,
This patch is applied.
Regards--
Subrata
> Index: shmt05.c
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/mem/shmt/shmt05.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 shmt05.c
> --- shmt05.c 15 May 2008 06:54:17 -0000 1.7
> +++ shmt05.c 16 May 2008 20:17:34 -0000
> @@ -53,7 +53,7 @@ extern int Tst_count; /* Test Case coun
>
> key_t key[2];
>
> -#define SIZE 16*1024
> +#define SIZE (2*SHMLBA)
>
> int rm_shm(int);
>
> @@ -93,7 +93,7 @@ int main()
> "Error: shmget: shmid1 = %d, errno = %d\n",
> shmid1, errno);
> } else {
> - cp1 = (char *)shmat(shmid1, cp + 4096, 0);
> + cp1 = (char *)shmat(shmid1, cp + (SIZE/2), 0);
> if (cp1 != (char *)-1) {
> perror("shmat");
> tst_resm(TFAIL,
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list