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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/