summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-cgroup-reduce-read-locked-section-of-cgroup_threadgr.patch112
-rw-r--r--kernel.spec8
-rw-r--r--sources2
3 files changed, 5 insertions, 117 deletions
diff --git a/0001-cgroup-reduce-read-locked-section-of-cgroup_threadgr.patch b/0001-cgroup-reduce-read-locked-section-of-cgroup_threadgr.patch
deleted file mode 100644
index daad25310..000000000
--- a/0001-cgroup-reduce-read-locked-section-of-cgroup_threadgr.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 568ac888215c7fb2fabe8ea739b00ec3c1f5d440 Mon Sep 17 00:00:00 2001
-From: Balbir Singh <bsingharora@gmail.com>
-Date: Wed, 10 Aug 2016 15:43:06 -0400
-Subject: [PATCH] cgroup: reduce read locked section of
- cgroup_threadgroup_rwsem during fork
-
-cgroup_threadgroup_rwsem is acquired in read mode during process exit
-and fork. It is also grabbed in write mode during
-__cgroups_proc_write(). I've recently run into a scenario with lots
-of memory pressure and OOM and I am beginning to see
-
-systemd
-
- __switch_to+0x1f8/0x350
- __schedule+0x30c/0x990
- schedule+0x48/0xc0
- percpu_down_write+0x114/0x170
- __cgroup_procs_write.isra.12+0xb8/0x3c0
- cgroup_file_write+0x74/0x1a0
- kernfs_fop_write+0x188/0x200
- __vfs_write+0x6c/0xe0
- vfs_write+0xc0/0x230
- SyS_write+0x6c/0x110
- system_call+0x38/0xb4
-
-This thread is waiting on the reader of cgroup_threadgroup_rwsem to
-exit. The reader itself is under memory pressure and has gone into
-reclaim after fork. There are times the reader also ends up waiting on
-oom_lock as well.
-
- __switch_to+0x1f8/0x350
- __schedule+0x30c/0x990
- schedule+0x48/0xc0
- jbd2_log_wait_commit+0xd4/0x180
- ext4_evict_inode+0x88/0x5c0
- evict+0xf8/0x2a0
- dispose_list+0x50/0x80
- prune_icache_sb+0x6c/0x90
- super_cache_scan+0x190/0x210
- shrink_slab.part.15+0x22c/0x4c0
- shrink_zone+0x288/0x3c0
- do_try_to_free_pages+0x1dc/0x590
- try_to_free_pages+0xdc/0x260
- __alloc_pages_nodemask+0x72c/0xc90
- alloc_pages_current+0xb4/0x1a0
- page_table_alloc+0xc0/0x170
- __pte_alloc+0x58/0x1f0
- copy_page_range+0x4ec/0x950
- copy_process.isra.5+0x15a0/0x1870
- _do_fork+0xa8/0x4b0
- ppc_clone+0x8/0xc
-
-In the meanwhile, all processes exiting/forking are blocked almost
-stalling the system.
-
-This patch moves the threadgroup_change_begin from before
-cgroup_fork() to just before cgroup_canfork(). There is no nee to
-worry about threadgroup changes till the task is actually added to the
-threadgroup. This avoids having to call reclaim with
-cgroup_threadgroup_rwsem held.
-
-tj: Subject and description edits.
-
-Signed-off-by: Balbir Singh <bsingharora@gmail.com>
-Acked-by: Zefan Li <lizefan@huawei.com>
-Cc: Oleg Nesterov <oleg@redhat.com>
-Cc: Andrew Morton <akpm@linux-foundation.org>
-Cc: stable@vger.kernel.org # v4.2+
-Signed-off-by: Tejun Heo <tj@kernel.org>
----
- kernel/fork.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 52e725d..aaf7823 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -1404,7 +1404,6 @@ static struct task_struct *copy_process(unsigned long clone_flags,
- p->real_start_time = ktime_get_boot_ns();
- p->io_context = NULL;
- p->audit_context = NULL;
-- threadgroup_change_begin(current);
- cgroup_fork(p);
- #ifdef CONFIG_NUMA
- p->mempolicy = mpol_dup(p->mempolicy);
-@@ -1556,6 +1555,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
- INIT_LIST_HEAD(&p->thread_group);
- p->task_works = NULL;
-
-+ threadgroup_change_begin(current);
- /*
- * Ensure that the cgroup subsystem policies allow the new process to be
- * forked. It should be noted the the new process's css_set can be changed
-@@ -1656,6 +1656,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
- bad_fork_cancel_cgroup:
- cgroup_cancel_fork(p);
- bad_fork_free_pid:
-+ threadgroup_change_end(current);
- if (pid != &init_struct_pid)
- free_pid(pid);
- bad_fork_cleanup_thread:
-@@ -1688,7 +1689,6 @@ bad_fork_cleanup_policy:
- mpol_put(p->mempolicy);
- bad_fork_cleanup_threadgroup_lock:
- #endif
-- threadgroup_change_end(current);
- delayacct_tsk_free(p);
- bad_fork_cleanup_count:
- atomic_dec(&p->cred->user->processes);
---
-2.7.4
-
diff --git a/kernel.spec b/kernel.spec
index 07702784b..3cec122a4 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -59,7 +59,7 @@ Summary: The Linux kernel
# Do we have a -stable update to apply?
-%define stable_update 3
+%define stable_update 4
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -652,9 +652,6 @@ Patch858: 0001-OOM-detection-regressions-since-4.7.patch
#rhbz 1360688
Patch859: rc-core-fix-repeat-events.patch
-# https://lkml.org/lkml/2016/8/30/566
-Patch861: 0001-cgroup-reduce-read-locked-section-of-cgroup_threadgr.patch
-
#rhbz 1350174
Patch862: tip-x86-boot-x86-KASLR-x86-power-Remove-x86-hibernation-restrictions.patch
@@ -2194,6 +2191,9 @@ fi
#
#
%changelog
+* Thu Sep 15 2016 Laura Abbott <labbott@fedoraproject.org> - 4.7.4-200
+- Linux v4.7.4
+
* Wed Sep 14 2016 Laura Abbott <labbott@fedoraproject.org>
- Fix for incorrect return checking in cpupower (rhbz 1374212)
- Let iio tools build on older kernels
diff --git a/sources b/sources
index c33fe9c55..9c36889c8 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
5276563eb1f39a048e4a8a887408c031 linux-4.7.tar.xz
fe259c02c75eec61d1aa4b1211f3c853 perf-man-4.7.tar.gz
-803bdedd9b9cd4ef43d9d5d41801f234 patch-4.7.3.xz
+150cff5d90bd90217848974269a770ee patch-4.7.4.xz