[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] kanoj-mm21-2.3.23 alow larger sizes to shmget()



> 
> Hi Kanoj,
> 
> This is probably breaking user space applications since shmid_ds is
> shared with user space in shmctl(2).  On 32bit machines this does not
> matter, since sizeof(int) == sizeof(size_t), but on 64bit this will
> break.
> 
> How do we handle this?

Unfortunately, I don't think we can prevent this 64bit ABI breakage, if
we want to conform to the single unix spec on those platforms. Its 
probably a good idea to have the ia64 port be SUS compliant, even though
sparc64/alpha are currently not. 

If it is really important to preserve the 64bit ABI, there's one more 
alternative: preserve the shmget() api/abi on the old 64bit platforms, but
be compliant on the 32 bit ones and newer 64 bit ones (mips64/ia64). This 
is not the cleanest solution, but can be done with a little header file
reorganization in include/linux/shm.h and include/linux/shmparam.h.

Linus has put this patch into pre-25, lets talk if it is important to
do the above ... it shouldn't take me more than a couple of hours to 
do it, if we so decided.

Thanks.

Kanoj

> 
> Greetings
>          Christoph
> 
> kanoj@google.engr.sgi.com (Kanoj Sarcar) writes:
> 
> > Linus,
> > 
> > Per our previous discussion, this is the patch to change the shmget()
> > api to permit larger shm segments (now that larger user address spaces,
> > as well as large memory machines are possible).
> > 
> > Note that I have defined shmget() as
> > 	shmget(key_t, size_t, int)
> > instead of as
> > 	shmget(key_t, unsigned int, int)
> > or as
> > 	shmget(key_t, unsigned long, int).
> > 
> > This is because the single unix spec sets down the first definition
> > (http://www.opengroup.org/onlinepubs/007908799/xsh/shmget.html).
> > This becomes interesting, because size_t is of different sizes on
> > different architectures, so the shmfs code has to do careful formatting.
> > (This logic is also probably needed in the ipcs command).
> > 
> > Let me know if the patch looks okay.
> > 
> > Thanks.
> > 
> > Kanoj
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/