All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Lin Ming <ming.m.lin@intel.com>
Cc: Mike Galbraith <efault@gmx.de>,
	"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Dhaval Giani <dhaval@linux.vnet.ibm.com>,
	Miao Xie <miaox@cn.fujitsu.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@elte.hu>
Subject: [PATCH] sched: release buddies on yield
Date: Tue, 11 Nov 2008 11:52:33 +0100	[thread overview]
Message-ID: <1226400753.7685.1506.camel@twins> (raw)
In-Reply-To: <1226397807.30025.79.camel@minggr.sh.intel.com>

Clear buddies on yield, so that the buddy rules don't schedule them
despite them being placed right-most.

This fixed a performance regression with yield-happy binary JVMs.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Tested-by: Lin Ming <ming.m.lin@intel.com>
---
 kernel/sched_fair.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 51aa3e1..98345e4 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -716,6 +716,15 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup)
 		__enqueue_entity(cfs_rq, se);
 }
 
+static void clear_buddies(struct cfs_rq *cfs_rq, struct sched_entity *se)
+{
+	if (cfs_rq->last == se)
+		cfs_rq->last = NULL;
+
+	if (cfs_rq->next == se)
+		cfs_rq->next = NULL;
+}
+
 static void
 dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
 {
@@ -738,11 +747,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
 #endif
 	}
 
-	if (cfs_rq->last == se)
-		cfs_rq->last = NULL;
-
-	if (cfs_rq->next == se)
-		cfs_rq->next = NULL;
+	clear_buddies(cfs_rq, se);
 
 	if (se != cfs_rq->curr)
 		__dequeue_entity(cfs_rq, se);
@@ -977,6 +982,8 @@ static void yield_task_fair(struct rq *rq)
 	if (unlikely(cfs_rq->nr_running == 1))
 		return;
 
+	clear_buddies(cfs_rq, se);
+
 	if (likely(!sysctl_sched_compat_yield) && curr->policy != SCHED_BATCH) {
 		update_rq_clock(rq);
 		/*


  parent reply	other threads:[~2008-11-11 10:52 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-09 19:40 2.6.28-rc3-git6: Reported regressions 2.6.26 -> 2.6.27 Rafael J. Wysocki
2008-11-09 19:40 ` Rafael J. Wysocki
2008-11-09 19:40 ` [Bug #11207] VolanoMark regression with 2.6.27-rc1 Rafael J. Wysocki
     [not found]   ` <1226343293.5498.5.camel@marge.simson.net>
     [not found]     ` <1226366822.2866.19.camel@ymzhang>
     [not found]       ` <1226394669.30025.72.camel@minggr.sh.intel.com>
     [not found]         ` <1226395210.7685.1324.camel@twins>
     [not found]           ` <1226395937.7685.1340.camel@twins>
     [not found]             ` <1226397807.30025.79.camel@minggr.sh.intel.com>
2008-11-11 10:52               ` Peter Zijlstra [this message]
2008-11-11 10:57                 ` [PATCH] sched: release buddies on yield Ingo Molnar
2008-11-09 19:43 ` [Bug #11209] 2.6.27-rc1 process time accounting Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11215] INFO: possible recursive locking detected ps2_command Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11340] LTP overnight run resulted in unusable box Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11264] Invalid op opcode in kernel/workqueue Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11308] tbench regression on each kernel release from 2.6.22 -&gt; 2.6.28 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11407] suspend: unable to handle kernel paging request Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11404] BUG: in 2.6.23-rc3-git7 in do_cciss_intr Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 22:24   ` Randy Dunlap
2008-11-09 19:43 ` [Bug #11380] lockdep warning: cpu_add_remove_lock at:cpu_maps_update_begin+0x14/0x16 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-10  7:30   ` Ingo Molnar
2008-11-10  7:30     ` Ingo Molnar
     [not found]     ` <20081110073047.GA28578-X9Un+BFzKDI@public.gmane.org>
2008-11-10 13:22       ` Oleg Nesterov
2008-11-10 13:22         ` Oleg Nesterov
     [not found]         ` <20081110132208.GB10294-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-11-11  2:10           ` KOSAKI Motohiro
2008-11-11  2:10             ` KOSAKI Motohiro
     [not found]             ` <20081111105706.6174.KOSAKI.MOTOHIRO-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-11-11 12:01               ` Oleg Nesterov
2008-11-11 12:01                 ` Oleg Nesterov
     [not found]                 ` <20081111120111.GA3503-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-11-11 11:07                   ` Ingo Molnar
2008-11-11 11:07                     ` Ingo Molnar
     [not found]                     ` <20081111110708.GE15645-X9Un+BFzKDI@public.gmane.org>
2008-11-11 13:47                       ` Rafael J. Wysocki
2008-11-11 13:47                         ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11543] kernel panic: softlockup in tick_periodic() ??? Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-10 16:18   ` Cyrill Gorcunov
2008-11-10 16:18     ` Cyrill Gorcunov
2008-11-09 19:43 ` [Bug #11476] failure to associate after resume from suspend to ram Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11505] oltp ~10% regression with 2.6.27-rc5 on stoakley machine Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11569] Panic stop CPUs regression Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11608] 2.6.27-rc6 BUG: unable to handle kernel paging request Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11664] acpi errors and random freeze on sony vaio sr Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11805] mounting XFS produces a segfault Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11795] ks959-sir dongle no longer works under 2.6.27 (REGRESSION) Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11820] 2.6.27: 0 MHz CPU and wrong system time on AMD Geode system Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11698] 2.6.27-rc7, freezes with &gt; 1 s2ram cycle Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11836] Scheduler on C2D CPU and latest 2.6.27 kernel Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11829] Kernel 2.6.26.5 -&gt; 2.6.27.2 [USB REGRESSION] (USB -&gt; D_STATE) Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-11  7:13   ` Greg KH
2008-11-11  7:13     ` Greg KH
     [not found]     ` <20081111071301.GB13596-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-11-11 13:53       ` Rafael J. Wysocki
2008-11-11 13:53         ` Rafael J. Wysocki
2008-11-11 15:41         ` Mike Isely
     [not found]           ` <Pine.LNX.4.64.0811110938500.22093-Ea2Jjc6YRc5If6P1QZMOBw@public.gmane.org>
2008-11-11 16:38             ` Rafael J. Wysocki
2008-11-11 16:38               ` Rafael J. Wysocki
     [not found]         ` <200811111453.34386.rjw-KKrjLPT3xs0@public.gmane.org>
2008-11-11 16:42           ` Alan Stern
2008-11-11 16:42             ` Alan Stern
2008-11-09 19:43 ` [Bug #11830] disk statistics issue in 2.6.27 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 23:49   ` Miquel van Smoorenburg
2008-11-09 23:49     ` Miquel van Smoorenburg
     [not found]     ` <1226274573.6979.1.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-11-10  0:05       ` Rafael J. Wysocki
2008-11-10  0:05         ` Rafael J. Wysocki
2008-11-10  0:13       ` James Bottomley
2008-11-10  0:13         ` James Bottomley
2008-11-10  0:19         ` Miquel van Smoorenburg
2008-11-09 19:43 ` [Bug #11865] WOL for E100 Doesn't Work Anymore Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11843] usb hdd problems with 2.6.27.2 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11876] RCU hang on cpu re-hotplug with 2.6.27rc8 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11892] Battery information and status disappearing and wrong thermal status Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki
2008-11-09 19:43 ` [Bug #11983] iwlagn: wrong command queue 31, command id 0x0 Rafael J. Wysocki
2008-11-09 19:43   ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1226400753.7685.1506.camel@twins \
    --to=peterz@infradead.org \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miaox@cn.fujitsu.com \
    --cc=ming.m.lin@intel.com \
    --cc=mingo@elte.hu \
    --cc=rjw@sisk.pl \
    --cc=yanmin_zhang@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.