On Tue, Apr 23, 2013 at 10:38:23PM +0200, Mateusz Guzik wrote: > Hello, > > I would like to replace Giant with a local sx lock in sysvshm code. > Looked really straightforward so maybe I missed something.
At very least, the shmget_existing() is no longer functional. The sx is owned around tsleep(), and thus a progress cannot be made by other thread, which needs the same sx lock. Use of the SHMSEG_REMOVED in the shmget_allocate_segment() does not make any sense in your patch, since sleeping malloc allocation owns sx and prevent other threads from finding the segment. I did not looked further.
pgprxKns026mN.pgp
Description: PGP signature