Messages in this thread | | | From | Manfred Spraul <> | Subject | [PATCH 0/4] ipc/sem.c: Bug fixes, regression fixes, v3 | Date | Sun, 26 May 2013 11:08:51 +0200 |
| |
I've split my patch into 4 parts: - 1: Fix-missing-wakeups-in-do_smart_update - 2: seperate-wait-for-zero-and-alter-tasks - 3: Always-use-only-one-queue-for-alter-operations - 4: Rename-try_atomic_semop-to-perform_atomic
Linus: - Patch 1 should be merged immediately: It fixes bugs, the current code misses wakeups.
- Patch 2 and 3 restore the behavior of linux <=3.0.9. I would propose that they are merged, too: I can't rule out that changing the priority of the wakeups breaks user space apps.
- Patch 4 is trivial, no code changes at all. If 2+3 are merged, then 4 should be merged, too.
I have tested patch 1 seperately and 1+2+3+4: With patch 1 applied, there are no more missed wakeups.
With all 4 applied, linux-3.0.10-rc1 behaves as linux <=3.0.9.
With regards to the scalability, I do not expect any degradation: Operations on seperate semaphores in an array remain parallelized.
Apps that use lots of wait-for-zero semop are probably even faster, because the wait-for-zero ops are now only scanned if a semval is 0.
-- Manfred
| |