Messages in this thread | | | Subject | Re: [PATCH 0/6] ipc/sem.c: performance improvements, FIFO | From | Mike Galbraith <> | Date | Sat, 15 Jun 2013 07:48:39 +0200 |
| |
On Sat, 2013-06-15 at 07:27 +0200, Manfred Spraul wrote:
> Assume there is one op (semctl(), whatever) that acquires the global > lock - and a continuous stream of simple ops. > - spin_is_locked() returns true due to the semctl(). > - then simple ops will switch to spin_lock(&sma->sem_perm.lock). > - since the spinlock is acquired, the next operation will get true from > spin_is_locked(). > > It will stay that way around - as long as there is at least one op > waiting for sma->sem_perm.lock. > With enough cpus, it will stay like this forever.
Yup, pondered that yesterday, scratching my head over how to do better. Hints highly welcome. Maybe if I figure out how to scratch dual lock thingy properly for -rt, non-rt will start acting sane too, as that spot seems to be itchy in both kernels.
-Mike
| |