Messages in this thread | | | Subject | Re: [PATCH] Don't set sempid in semctl syscall. | From | Manfred Spraul <> | Date | Fri, 26 Feb 2016 21:19:32 +0100 |
| |
Hi,
On 02/26/2016 01:21 PM, PrasannaKumar Muralidharan wrote: > From: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> > > As described in bug #112271 (bugzilla.kernel.org/show_bug.cgi?id=112271) > don't set sempid in semctl syscall. Set sempid only when semop is called. I disagree with the bug report:
sempid is (and always was on Linux) the pid of the last task that modified the semaphore: It is updated for semop, SETVAL and undo adjustment on process exit. And - that is a bug: sempid is not updated for SETALL :-(
With regard to setting sempid on SETVAL,
- Opensolaris sets sempid on SETVAL and SETALL http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenSolaris_b135/uts/common/syscall/sem.c - Darwin sets sempid on SETVAL and SETALL http://fxr.watson.org/fxr/source//bsd/kern/sysv_sem.c?v=xnu-1456.1.26
Note: For sem_otime and sem_ctime, there are also subtile differences between the sysv implementations. What should we do there?
Here is my last review (already a few years old - some links may be stale, perhaps a few more implementations are now available) http://calculix-rpm.sourceforge.net/sysvsem.html
-- Manfred
| |