Subject: Re: cygserver shmat
From: bertrand marquis <[email-masked]>
To: cygwin <[email-masked]>
Date: 12 Aug 2004 14:44:42 +0200

Le jeu 12/08/2004 à 14:19, bertrand marquis a écrit :
> Le jeu 12/08/2004 à 14:03, bertrand marquis a écrit :
> > Le jeu 12/08/2004 à 12:44, Corinna Vinschen a écrit :
> > > On Aug 12 12:13, bertrand marquis wrote:
> > > > In fact i wasn't using the SHM_RNd flag.
> > > > 
> > > > In details here is what i do:
> > > > 
> > > > - get a shared segment of with size= SIZE (SIZE multiple of SHMLBA)
> > > > - attach the segment without specifying address and storing the result
> > > > in beginaddress
> > > > - attach the segment again specifying the address: endposition=
> > > > beginaddress + SIZE
> > > > 
> > > > without SHM_RND in the second shmat i've got the error : invalid
> > > > argument
> > > > 
> > > > now that i specifie SHM_RND in the flag i have the error: value to large
> > > > for defined type ....
> > > > 
> > > > any idea ?
> > > 
> > > Nope.  Not without knowing the actual values.  An strace output of
> > > the affected calls would be good.  Even better, create a simple testcase
> > > which allows to reproduce the behaviour.  Just the minimum of necessary
> > > code.
> > > 
> > > 
> > > Corinna
> > 
> > 
> > Ok,
> > 
> > i have made a minimum program showing the problem.
> > You can try specifying or not SHM_RND in the second shmat, without i
> > have INvalid argument error and with i have value too large for defined
> > data type.
> > 
> > 
> > thanks
> > bertrand
> > 
> > ______________________________________________________________________
> Hello
> 
> Running some tests it seems that specifying an adress is not the problem
> because if i give an adress in the first shmat it is running well as
> long as this adress is free.
> In fact the problem is only when specifying an adress for mapping the
> same segment twice and only if we specifie the adress the second time.
> 
> i hope it could help or give an idea to someone.
> 
> bertrand
> 
> 
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Problem reports:       http://cygwin.com/problems.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
> 

Hello an other time,

Ok i perhaps find a solution or a beginning of solution:

the getpagesize() function return a value of 4096 for the page size and
it seems that shmat need the address to be aligned on a multiple of
SHMLBA (655539), if instead of using getpagesize value to round the size
i use the value of SHMLBA i can run the test program without any
problem.

the thing is that this doesn't append under linux. In fact under linux
SHMLBA=getpagesize=4096 so the program run perfectly without any
problem.

Perhaps the cygwin release of getpagesize should output also SHMLBA ?

bertrand

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/