public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: Mike Galbraith <umgwanakikbuti@gmail.com>,
	Byungchul Park <byungchul.park@lge.com>,
	Greg KH <gregkh@linuxfoundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	stable@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [STABLE] kernel oops which can be fixed by peterz's patches
Date: Tue, 23 Feb 2016 21:06:53 +0000	[thread overview]
Message-ID: <1456261613.9099.0.camel@decadent.org.uk> (raw)
In-Reply-To: <1455678179.3531.15.camel@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1481 bytes --]

On Wed, 2016-02-17 at 04:02 +0100, Mike Galbraith wrote:
[...]

@stable: Kernels that predate SCHED_DEADLINE can use this simple (and tested)
check in lieu of backport of the full 18 patch mainline treatment.

Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
---
 kernel/sched/fair.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4008,6 +4008,7 @@ int can_migrate_task(struct task_struct
 	 * 2) cannot be migrated to this CPU due to cpus_allowed, or
 	 * 3) running (obviously), or
 	 * 4) are cache-hot on their current CPU.
+	 * 5) p->pi_lock is held.
 	 */
 	if (throttled_lb_pair(task_group(p), env->src_cpu, env->dst_cpu))
 		return 0;
@@ -4049,6 +4050,14 @@ int can_migrate_task(struct task_struct
 	}
 
 	/*
+	 * rt -> fair class change may be in progress.  If we sneak in should
+	 * double_lock_balance() release rq->lock, and move the task, we will
+	 * cause switched_to_fair() to meet a passed but no longer valid rq.
+	 */
+	if (raw_spin_is_locked(&p->pi_lock))
+		return 0;
+
+	/*
 	 * Aggressive migration if:
 	 * 1) task is cache cold, or
 	 * 2) too many balance attempts have failed.



Queued up for 3.2, thanks.

Ben.

-- 
Ben Hutchings
Any smoothly functioning technology is indistinguishable from a rigged demo.
-- 
Ben Hutchings
Any smoothly functioning technology is indistinguishable from a rigged demo.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

  parent reply	other threads:[~2016-02-23 21:07 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-05  8:52 [STABLE] kernel oops which can be fixed by peterz's patches Byungchul Park
2016-01-05  9:14 ` Peter Zijlstra
2016-01-12  8:47   ` Byungchul Park
2016-01-12 10:21   ` Willy Tarreau
2016-01-25  7:25   ` Byungchul Park
2016-02-16  7:08     ` Byungchul Park
2016-02-16  8:44       ` Peter Zijlstra
2016-02-16 17:42         ` Greg KH
2016-02-17  0:11           ` Byungchul Park
2016-02-17  0:41             ` Greg KH
2016-02-17  2:00               ` Byungchul Park
2016-02-17  3:01                 ` Greg KH
2016-02-17  3:02                 ` Mike Galbraith
2016-02-23 21:05                   ` Ben Hutchings
2016-02-23 21:06                   ` Ben Hutchings [this message]
2016-01-05  9:16 ` [PATCH for v3.14.58 1/7] sched: Clean up idle task SMP logic Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 2/7] sched: Replace post_schedule with a balance callback list Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 3/7] sched: Allow balance callbacks for check_class_changed() Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 4/7] sched,rt: Remove return value from pull_rt_task() Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 5/7] sched, rt: Convert switched_{from, to}_rt() / prio_changed_rt() to balance callbacks Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 6/7] sched,dl: Remove return value from pull_dl_task() Byungchul Park
2016-01-05  9:16   ` [PATCH for v3.14.58 7/7] sched, dl: Convert switched_{from, to}_dl() / prio_changed_dl() to balance callbacks Byungchul Park
2016-01-05  9:24 ` [PATCH for v3.18.25 1/6] sched: Replace post_schedule with a balance callback list Byungchul Park
2016-01-05  9:24   ` [PATCH for v3.18.25 2/6] sched: Allow balance callbacks for check_class_changed() Byungchul Park
2016-01-05  9:24   ` [PATCH for v3.18.25 3/6] sched,rt: Remove return value from pull_rt_task() Byungchul Park
2016-01-05  9:24   ` [PATCH for v3.18.25 4/6] sched, rt: Convert switched_{from, to}_rt() / prio_changed_rt() to balance callbacks Byungchul Park
2016-01-05  9:24   ` [PATCH for v3.18.25 5/6] sched,dl: Remove return value from pull_dl_task() Byungchul Park
2016-01-05  9:24   ` [PATCH for v3.18.25 6/6] sched, dl: Convert switched_{from, to}_dl() / prio_changed_dl() to balance callbacks Byungchul Park
2016-03-01  8:15 ` [STABLE] kernel oops which can be fixed by peterz's patches Greg KH
2016-07-18  6:31   ` Byungchul Park
2016-07-18 12:09     ` Greg KH
2016-07-18 23:59       ` Byungchul Park
2016-06-13 18:31 ` Ben Hutchings

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=1456261613.9099.0.camel@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=byungchul.park@lge.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=umgwanakikbuti@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox