[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