[linux] 06/07: sched/rt: remove two patches from 4.9.82

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Sat Feb 17 17:38:39 UTC 2018


This is an automated email from the git hooks/post-receive script.

corsac pushed a commit to branch stretch
in repository linux.

commit d46f10b5b443b4b25b18aabc8324fe7b4e588751
Author: Yves-Alexis Perez <corsac at corsac.net>
Date:   Sat Feb 17 18:00:22 2018 +0100

    sched/rt: remove two patches from 4.9.82
    
    they need to be applied on top of a patch reverted for ABI change in
    4.9.66.
---
 debian/changelog                                   |  2 +
 ...d-rt-Up-the-root-domain-ref-count-when-pa.patch | 85 ++++++++++++++++++++++
 ...d-rt-Use-container_of-to-get-root-domain-.patch | 75 +++++++++++++++++++
 debian/patches/series                              |  2 +
 4 files changed, 164 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index ef3d4f7..1946eb5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -83,6 +83,8 @@ linux (4.9.82-1) UNRELEASED; urgency=medium
     - ACPI: sbshc: remove raw pointer from printk() message (CVE-2018-5750)
     - acpi, nfit: fix register dimm error handling
   * Remove patches included in 4.9.82
+  * sched/rt: remove two patches from 4.9.82 which need to be applied on top
+    of a patch reverted for ABI change in 4.9.66.
 
  -- Yves-Alexis Perez <corsac at debian.org>  Tue, 13 Feb 2018 17:44:41 +0100
 
diff --git a/debian/patches/debian/revert-sched-rt-Up-the-root-domain-ref-count-when-pa.patch b/debian/patches/debian/revert-sched-rt-Up-the-root-domain-ref-count-when-pa.patch
new file mode 100644
index 0000000..7f49b90
--- /dev/null
+++ b/debian/patches/debian/revert-sched-rt-Up-the-root-domain-ref-count-when-pa.patch
@@ -0,0 +1,85 @@
+From 50deb025f5ccc9b5b2e36031c88deff9bc3aebca Mon Sep 17 00:00:00 2001
+From: Yves-Alexis Perez <corsac at debian.org>
+Date: Sat, 17 Feb 2018 15:57:01 +0100
+Subject: [PATCH] Revert "sched/rt: Up the root domain ref count when passing it around via IPIs"
+Forwarded: Not needed
+
+This reverts commit a384e5437f705972d2884cea17b931c1a2cd3277 which is
+commit 364f56653708ba8bcdefd4f0da2a42904baa8eeb upstream. It has to be
+applied on top of 1c37ff78298a6b6063649123356a312e1cce12ca which has
+been reverted in Debian to prevent an ABI change.
+---
+ kernel/sched/core.c  | 13 -------------
+ kernel/sched/rt.c    |  9 ++-------
+ kernel/sched/sched.h |  2 --
+ 3 files changed, 2 insertions(+), 22 deletions(-)
+
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index bce3a7ad4253..e5066955cc3a 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -5864,19 +5864,6 @@ static void rq_attach_root(struct rq *rq, struct root_domain *rd)
+ 		call_rcu_sched(&old_rd->rcu, free_rootdomain);
+ }
+ 
+-void sched_get_rd(struct root_domain *rd)
+-{
+-	atomic_inc(&rd->refcount);
+-}
+-
+-void sched_put_rd(struct root_domain *rd)
+-{
+-	if (!atomic_dec_and_test(&rd->refcount))
+-		return;
+-
+-	call_rcu_sched(&rd->rcu, free_rootdomain);
+-}
+-
+ static int init_rootdomain(struct root_domain *rd)
+ {
+ 	memset(rd, 0, sizeof(*rd));
+diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
+index 30aeff8f741c..7a360d6f6798 100644
+--- a/kernel/sched/rt.c
++++ b/kernel/sched/rt.c
+@@ -1979,11 +1979,8 @@ static void tell_cpu_to_push(struct rq *rq)
+ 
+ 	rto_start_unlock(&rq->rd->rto_loop_start);
+ 
+-	if (cpu >= 0) {
+-		/* Make sure the rd does not get freed while pushing */
+-		sched_get_rd(rq->rd);
++	if (cpu >= 0)
+ 		irq_work_queue_on(&rq->rd->rto_push_work, cpu);
+-	}
+ }
+ 
+ /* Called from hardirq context */
+@@ -2011,10 +2008,8 @@ void rto_push_irq_work_func(struct irq_work *work)
+ 
+ 	raw_spin_unlock(&rq->rd->rto_lock);
+ 
+-	if (cpu < 0) {
+-		sched_put_rd(rd);
++	if (cpu < 0)
+ 		return;
+-	}
+ 
+ 	/* Try the next RT overloaded CPU */
+ 	irq_work_queue_on(&rq->rd->rto_push_work, cpu);
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index f564a1d2c9d5..cff985feb6e7 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -590,8 +590,6 @@ struct root_domain {
+ };
+ 
+ extern struct root_domain def_root_domain;
+-extern void sched_get_rd(struct root_domain *rd);
+-extern void sched_put_rd(struct root_domain *rd);
+ 
+ #ifdef HAVE_RT_PUSH_IPI
+ extern void rto_push_irq_work_func(struct irq_work *work);
+-- 
+2.16.1
+
diff --git a/debian/patches/debian/revert-sched-rt-Use-container_of-to-get-root-domain-.patch b/debian/patches/debian/revert-sched-rt-Use-container_of-to-get-root-domain-.patch
new file mode 100644
index 0000000..b70f003
--- /dev/null
+++ b/debian/patches/debian/revert-sched-rt-Use-container_of-to-get-root-domain-.patch
@@ -0,0 +1,75 @@
+From 894708eaeb785463cc13bd7cc0f39cd9a0a3db05 Mon Sep 17 00:00:00 2001
+From: Yves-Alexis Perez <corsac at debian.org>
+Date: Sat, 17 Feb 2018 15:43:35 +0100
+Subject: [PATCH] Revert "sched/rt: Use container_of() to get root domain in rto_push_irq_work_func()"
+Forwarded: Not needed
+
+This reverts commit 1c679981309b4d36b024fc954cfcf2111a007de0 which is
+commit ad0f1d9d65938aec72a698116cd73a980916895e upstream. It has to be
+applied on top of 1c37ff78298a6b6063649123356a312e1cce12ca which has
+been reverted in Debian to prevent an ABI change.
+---
+ kernel/sched/rt.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
+index f6d68ddfa2f3..30aeff8f741c 100644
+--- a/kernel/sched/rt.c
++++ b/kernel/sched/rt.c
+@@ -1895,8 +1895,9 @@ static void push_rt_tasks(struct rq *rq)
+  * the rt_loop_next will cause the iterator to perform another scan.
+  *
+  */
+-static int rto_next_cpu(struct root_domain *rd)
++static int rto_next_cpu(struct rq *rq)
+ {
++	struct root_domain *rd = rq->rd;
+ 	int next;
+ 	int cpu;
+ 
+@@ -1972,7 +1973,7 @@ static void tell_cpu_to_push(struct rq *rq)
+ 	 * Otherwise it is finishing up and an ipi needs to be sent.
+ 	 */
+ 	if (rq->rd->rto_cpu < 0)
+-		cpu = rto_next_cpu(rq->rd);
++		cpu = rto_next_cpu(rq);
+ 
+ 	raw_spin_unlock(&rq->rd->rto_lock);
+ 
+@@ -1988,8 +1989,6 @@ static void tell_cpu_to_push(struct rq *rq)
+ /* Called from hardirq context */
+ void rto_push_irq_work_func(struct irq_work *work)
+ {
+-	struct root_domain *rd =
+-		container_of(work, struct root_domain, rto_push_work);
+ 	struct rq *rq;
+ 	int cpu;
+ 
+@@ -2005,12 +2004,12 @@ void rto_push_irq_work_func(struct irq_work *work)
+ 		raw_spin_unlock(&rq->lock);
+ 	}
+ 
+-	raw_spin_lock(&rd->rto_lock);
++	raw_spin_lock(&rq->rd->rto_lock);
+ 
+ 	/* Pass the IPI to the next rt overloaded queue */
+-	cpu = rto_next_cpu(rd);
++	cpu = rto_next_cpu(rq);
+ 
+-	raw_spin_unlock(&rd->rto_lock);
++	raw_spin_unlock(&rq->rd->rto_lock);
+ 
+ 	if (cpu < 0) {
+ 		sched_put_rd(rd);
+@@ -2018,7 +2017,7 @@ void rto_push_irq_work_func(struct irq_work *work)
+ 	}
+ 
+ 	/* Try the next RT overloaded CPU */
+-	irq_work_queue_on(&rd->rto_push_work, cpu);
++	irq_work_queue_on(&rq->rd->rto_push_work, cpu);
+ }
+ #endif /* HAVE_RT_PUSH_IPI */
+ 
+-- 
+2.16.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 8b579d0..aec924c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -183,6 +183,8 @@ debian/revert-lib-genalloc.c-make-the-avail-variable-an-ato.patch
 debian/revert-tcp-invalidate-rate-samples-during-SACK-reneg.patch
 debian/revert-bpf-avoid-false-sharing-of-map-refcount-with-.patch
 debian/bpf-avoid-abi-change-in-4.9.77.patch
+debian/revert-sched-rt-Use-container_of-to-get-root-domain-.patch
+debian/revert-sched-rt-Up-the-root-domain-ref-count-when-pa.patch
 debian/revert-sched-rt-Simplify-the-IPI-based-RT-balancing-.patch
 debian/revert-mm-fix-100-CPU-kswapd-busyloop-on-unreclaimab.patch
 debian/revert-x86-asm-Move-status-from-thread_struct-to-thr.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list