Re: [patch] speed up / fix the new generic semaphore code (fix AIM7 40% regression with 2.6.26-rc1)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Thursday, May 8, 2008 - 8:01 am

* Matthew Wilcox <matthew@wil.cx> wrote:


i dont think we need to consider any theoretical arguments about 
fairness here as there's a fundamental down-to-earth maintenance issue 
that governs: old semaphores were similarly unfair too, so it is just a 
bad idea (and a bug) to change behavior when implementing new, generic 
semaphores that are supposed to be a seemless replacement! This is about 
legacy code that is intended to be phased out anyway.

This is already a killer argument and we wouldnt have to look any 
further.

but even on the more theoretical level i disagree: fairness of CPU time 
is something that is implemented by the scheduler in a natural way 
already. Putting extra ad-hoc synchronization and scheduling into the 
locking primitives around data structures only gives mathematical 
fairness and artificial micro-scheduling, it does not actually make the 
end result more useful! This is especially true for the BKL which is 
auto-dropped by the scheduler anyway. (so descheduling a task will 
automatically release it of its BKL ownership)

For example we've invested a _lot_ of time and effort into adding lock 
stealing (i.e. intentional "unfairness") to kernel/rtmutex.c. Which is a 
_lot_ harder to do atomically with PI constraints but still possible and 
makes sense in the grand scheme of things. kernel/mutex.c is also 
"unfair" - and that's correct IMO.

For the BKL in particular there's almost no sense to talk about any 
underlying resource and there's almost no expectation from users for 
that imaginery resource to be shared fairly.

	Ingo
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Mon May 5, 10:48 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 4:18 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Tue May 6, 4:44 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 5:09 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 9:23 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Tue May 6, 9:36 am)
Re: AIM7 40% regression with 2.6.26-rc1, Alan Cox, (Tue May 6, 9:39 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 9:42 am)
Re: AIM7 40% regression with 2.6.26-rc1, J. Bruce Fields, (Tue May 6, 9:44 am)
Re: AIM7 40% regression with 2.6.26-rc1, Alan Cox, (Tue May 6, 9:45 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 9:51 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Tue May 6, 10:21 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Tue May 6, 10:31 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Tue May 6, 10:39 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Tue May 6, 10:42 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Tue May 6, 10:45 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Tue May 6, 10:49 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Tue May 6, 11:07 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Tue May 6, 1:28 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Tue May 6, 7:11 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Tue May 6, 8:41 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Tue May 6, 8:59 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Tue May 6, 9:46 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Tue May 6, 11:26 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Tue May 6, 11:28 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Tue May 6, 11:49 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Wed May 7, 12:05 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andi Kleen, (Wed May 7, 4:00 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Wed May 7, 4:46 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andi Kleen, (Wed May 7, 5:21 am)
Re: AIM7 40% regression with 2.6.26-rc1, Alan Cox, (Wed May 7, 6:59 am)
Re: AIM7 40% regression with 2.6.26-rc1, Alan Cox, (Wed May 7, 7:35 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 7:36 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andi Kleen, (Wed May 7, 7:57 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 8:00 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 8:02 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 8:19 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Wed May 7, 8:31 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 9:20 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Wed May 7, 9:22 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 9:35 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Wed May 7, 9:38 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 9:55 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:05 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:08 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:14 am)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Wed May 7, 10:16 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:22 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:24 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:25 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:27 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:31 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:36 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:47 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 10:49 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 10:55 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Wed May 7, 10:59 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 11:02 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 11:17 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 11:17 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 11:27 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 11:43 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 11:49 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 12:01 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 12:09 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Wed May 7, 12:24 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 12:44 pm)
Oi. NFS people. Read this., Matthew Wilcox, (Wed May 7, 1:00 pm)
Re: Oi. NFS people. Read this., Trond Myklebust, (Wed May 7, 3:10 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Wed May 7, 7:44 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Wed May 7, 8:24 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 8:29 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 8:34 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Wed May 7, 9:08 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Wed May 7, 9:17 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Wed May 7, 9:37 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Wed May 7, 11:43 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Andrew Morton, (Wed May 7, 11:48 pm)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Thu May 8, 12:14 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Thu May 8, 12:39 am)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Thu May 8, 1:44 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Thu May 8, 2:21 am)
Re: AIM7 40% regression with 2.6.26-rc1, Ingo Molnar, (Thu May 8, 2:29 am)
Re: AIM7 40% regression with 2.6.26-rc1, Zhang, Yanmin, (Thu May 8, 2:30 am)
Re: AIM7 40% regression with 2.6.26-rc1, Linus Torvalds, (Thu May 8, 7:58 am)
Re: [patch] speed up / fix the new generic semaphore code ..., Ingo Molnar, (Thu May 8, 8:01 am)
[git pull] scheduler fixes, Ingo Molnar, (Thu May 8, 8:10 am)
Re: [git pull] scheduler fixes, Adrian Bunk, (Thu May 8, 8:33 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Thu May 8, 8:41 am)
Re: [git pull] scheduler fixes, Adrian Bunk, (Thu May 8, 12:42 pm)
Re: Oi. NFS people. Read this., J. Bruce Fields, (Thu May 8, 6:43 pm)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 4:03 am)
Re: AIM7 40% regression with 2.6.26-rc1, Matthew Wilcox, (Sun May 11, 4:11 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 4:14 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 4:48 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 5:50 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 5:52 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 6:01 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 6:02 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 6:06 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 6:26 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 6:45 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 6:54 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 7:00 am)
Re: [git pull] scheduler fixes, Sven Wegener, (Sun May 11, 7:10 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 7:18 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 7:22 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 7:32 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 7:42 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 7:46 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 7:48 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Sun May 11, 8:19 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Sun May 11, 8:29 am)
Re: [git pull] scheduler fixes, Linus Torvalds, (Sun May 11, 9:47 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Tue May 13, 7:11 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Tue May 13, 7:21 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Tue May 13, 7:42 am)
Re: [git pull] scheduler fixes, Matthew Wilcox, (Tue May 13, 8:28 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Tue May 13, 10:13 am)
Re: [git pull] scheduler fixes, Linus Torvalds, (Tue May 13, 10:22 am)
Re: [git pull] scheduler fixes, Ingo Molnar, (Tue May 13, 2:05 pm)