Re: [git pull] scheduler fixes

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Matthew Wilcox <matthew@...>
Cc: Sven Wegener <sven.wegener@...>, Linus Torvalds <torvalds@...>, Zhang, Yanmin <yanmin_zhang@...>, Andi Kleen <andi@...>, LKML <linux-kernel@...>, Alexander Viro <viro@...>, Andrew Morton <akpm@...>, Thomas Gleixner <tglx@...>, H. Peter Anvin <hpa@...>
Date: Sunday, May 11, 2008 - 9:54 am

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


the gain is rather obvious: two parallel up()s (or just up()s which come 
close enough after each other) will wake up two tasks in parallel. With 
your patch, the first guy wakes up and then it wakes up the second guy. 
I.e. your patch serializes the wakeup chain, mine keeps it parallel.

the cache line dirtying is rather secondary to any solution - the first 
goal for any locking primitive is to get scheduling precise: to not wake 
up more tasks than optimal and to not wake up less tasks than optimal.

i.e. can you see any conceptual hole in the patch below?

	Ingo

---
 kernel/semaphore.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: linux/kernel/semaphore.c
===================================================================
--- linux.orig/kernel/semaphore.c
+++ linux/kernel/semaphore.c
@@ -258,5 +258,11 @@ static noinline void __sched __up(struct
 {
 	struct semaphore_waiter *waiter = list_first_entry(&sem->wait_list,
 						struct semaphore_waiter, list);
+	/*
+	 * Rotate sleepers - to make sure all of them get woken in case
+	 * of parallel up()s:
+	 */
+	list_move_tail(&waiter->list, &sem->wait_list);
+
 	wake_up_process(waiter->task);
 }
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

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