]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop bcache-ignore-pending-signals-when-creating-gc-and-a.patch from everywhere
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Mar 2020 18:13:35 +0000 (19:13 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Mar 2020 18:13:35 +0000 (19:13 +0100)
queue-4.14/bcache-ignore-pending-signals-when-creating-gc-and-a.patch [deleted file]
queue-4.14/series
queue-4.19/bcache-ignore-pending-signals-when-creating-gc-and-a.patch [deleted file]
queue-4.19/series
queue-5.4/bcache-ignore-pending-signals-when-creating-gc-and-a.patch [deleted file]
queue-5.4/series
queue-5.5/bcache-ignore-pending-signals-when-creating-gc-and-a.patch [deleted file]
queue-5.5/series

diff --git a/queue-4.14/bcache-ignore-pending-signals-when-creating-gc-and-a.patch b/queue-4.14/bcache-ignore-pending-signals-when-creating-gc-and-a.patch
deleted file mode 100644 (file)
index 497eb59..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From f52c4302ac3bf412369138c1a10881090c855399 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 13 Feb 2020 22:12:05 +0800
-Subject: bcache: ignore pending signals when creating gc and allocator thread
-
-From: Coly Li <colyli@suse.de>
-
-[ Upstream commit 0b96da639a4874311e9b5156405f69ef9fc3bef8 ]
-
-When run a cache set, all the bcache btree node of this cache set will
-be checked by bch_btree_check(). If the bcache btree is very large,
-iterating all the btree nodes will occupy too much system memory and
-the bcache registering process might be selected and killed by system
-OOM killer. kthread_run() will fail if current process has pending
-signal, therefore the kthread creating in run_cache_set() for gc and
-allocator kernel threads are very probably failed for a very large
-bcache btree.
-
-Indeed such OOM is safe and the registering process will exit after
-the registration done. Therefore this patch flushes pending signals
-during the cache set start up, specificly in bch_cache_allocator_start()
-and bch_gc_thread_start(), to make sure run_cache_set() won't fail for
-large cahced data set.
-
-Signed-off-by: Coly Li <colyli@suse.de>
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/bcache/alloc.c | 18 ++++++++++++++++--
- drivers/md/bcache/btree.c | 13 +++++++++++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
-index ada94a01e1423..9e85d44faeb49 100644
---- a/drivers/md/bcache/alloc.c
-+++ b/drivers/md/bcache/alloc.c
-@@ -67,6 +67,7 @@
- #include <linux/blkdev.h>
- #include <linux/kthread.h>
- #include <linux/random.h>
-+#include <linux/sched/signal.h>
- #include <trace/events/bcache.h>
- #define MAX_OPEN_BUCKETS 128
-@@ -700,8 +701,21 @@ int bch_open_buckets_alloc(struct cache_set *c)
- int bch_cache_allocator_start(struct cache *ca)
- {
--      struct task_struct *k = kthread_run(bch_allocator_thread,
--                                          ca, "bcache_allocator");
-+      struct task_struct *k;
-+
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-+      k = kthread_run(bch_allocator_thread, ca, "bcache_allocator");
-       if (IS_ERR(k))
-               return PTR_ERR(k);
-diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
-index 96a6583e7b522..d61c1a4937109 100644
---- a/drivers/md/bcache/btree.c
-+++ b/drivers/md/bcache/btree.c
-@@ -34,6 +34,7 @@
- #include <linux/random.h>
- #include <linux/rcupdate.h>
- #include <linux/sched/clock.h>
-+#include <linux/sched/signal.h>
- #include <linux/rculist.h>
- #include <trace/events/bcache.h>
-@@ -1801,6 +1802,18 @@ static int bch_gc_thread(void *arg)
- int bch_gc_thread_start(struct cache_set *c)
- {
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-       c->gc_thread = kthread_run(bch_gc_thread, c, "bcache_gc");
-       if (IS_ERR(c->gc_thread))
-               return PTR_ERR(c->gc_thread);
--- 
-2.20.1
-
index dfdfd46a6ae9bcdd3b908d9ee470090da56cff4b..22165d51ee3154430da905bc38edd0ab66e01224 100644 (file)
@@ -21,7 +21,6 @@ net-ena-fix-incorrectly-saving-queue-numbers-when-se.patch
 net-ena-ethtool-use-correct-value-for-crc32-hash.patch
 net-ena-ena-com.c-prevent-null-pointer-dereference.patch
 cifs-fix-mode-output-in-debugging-statements.patch
-bcache-ignore-pending-signals-when-creating-gc-and-a.patch
 cfg80211-add-missing-policy-for-nl80211_attr_status_.patch
 sysrq-restore-original-console_loglevel-when-sysrq-disabled.patch
 sysrq-remove-duplicated-sysrq-message.patch
diff --git a/queue-4.19/bcache-ignore-pending-signals-when-creating-gc-and-a.patch b/queue-4.19/bcache-ignore-pending-signals-when-creating-gc-and-a.patch
deleted file mode 100644 (file)
index e2fa1fd..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From 751e0982940bfe2ec79c6b3c5986bffb7cd3c45a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 13 Feb 2020 22:12:05 +0800
-Subject: bcache: ignore pending signals when creating gc and allocator thread
-
-From: Coly Li <colyli@suse.de>
-
-[ Upstream commit 0b96da639a4874311e9b5156405f69ef9fc3bef8 ]
-
-When run a cache set, all the bcache btree node of this cache set will
-be checked by bch_btree_check(). If the bcache btree is very large,
-iterating all the btree nodes will occupy too much system memory and
-the bcache registering process might be selected and killed by system
-OOM killer. kthread_run() will fail if current process has pending
-signal, therefore the kthread creating in run_cache_set() for gc and
-allocator kernel threads are very probably failed for a very large
-bcache btree.
-
-Indeed such OOM is safe and the registering process will exit after
-the registration done. Therefore this patch flushes pending signals
-during the cache set start up, specificly in bch_cache_allocator_start()
-and bch_gc_thread_start(), to make sure run_cache_set() won't fail for
-large cahced data set.
-
-Signed-off-by: Coly Li <colyli@suse.de>
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/bcache/alloc.c | 18 ++++++++++++++++--
- drivers/md/bcache/btree.c | 13 +++++++++++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
-index 46794cac167e7..2074860cbb16c 100644
---- a/drivers/md/bcache/alloc.c
-+++ b/drivers/md/bcache/alloc.c
-@@ -67,6 +67,7 @@
- #include <linux/blkdev.h>
- #include <linux/kthread.h>
- #include <linux/random.h>
-+#include <linux/sched/signal.h>
- #include <trace/events/bcache.h>
- #define MAX_OPEN_BUCKETS 128
-@@ -733,8 +734,21 @@ int bch_open_buckets_alloc(struct cache_set *c)
- int bch_cache_allocator_start(struct cache *ca)
- {
--      struct task_struct *k = kthread_run(bch_allocator_thread,
--                                          ca, "bcache_allocator");
-+      struct task_struct *k;
-+
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-+      k = kthread_run(bch_allocator_thread, ca, "bcache_allocator");
-       if (IS_ERR(k))
-               return PTR_ERR(k);
-diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
-index bb40bd66a10e4..83d6739fd067b 100644
---- a/drivers/md/bcache/btree.c
-+++ b/drivers/md/bcache/btree.c
-@@ -34,6 +34,7 @@
- #include <linux/random.h>
- #include <linux/rcupdate.h>
- #include <linux/sched/clock.h>
-+#include <linux/sched/signal.h>
- #include <linux/rculist.h>
- #include <linux/delay.h>
- #include <trace/events/bcache.h>
-@@ -1898,6 +1899,18 @@ static int bch_gc_thread(void *arg)
- int bch_gc_thread_start(struct cache_set *c)
- {
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-       c->gc_thread = kthread_run(bch_gc_thread, c, "bcache_gc");
-       return PTR_ERR_OR_ZERO(c->gc_thread);
- }
--- 
-2.20.1
-
index 29a0af242aa6dfb1ffd44d316336d8c55814bd3a..8da2c40c4e3150466a4e7fdbb4c4d99560379e13 100644 (file)
@@ -22,7 +22,6 @@ net-ena-fix-incorrectly-saving-queue-numbers-when-se.patch
 net-ena-ethtool-use-correct-value-for-crc32-hash.patch
 net-ena-ena-com.c-prevent-null-pointer-dereference.patch
 cifs-fix-mode-output-in-debugging-statements.patch
-bcache-ignore-pending-signals-when-creating-gc-and-a.patch
 cfg80211-add-missing-policy-for-nl80211_attr_status_.patch
 sysrq-restore-original-console_loglevel-when-sysrq-disabled.patch
 sysrq-remove-duplicated-sysrq-message.patch
diff --git a/queue-5.4/bcache-ignore-pending-signals-when-creating-gc-and-a.patch b/queue-5.4/bcache-ignore-pending-signals-when-creating-gc-and-a.patch
deleted file mode 100644 (file)
index ac0c685..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From 5944c0fc64cccafe884a7900b09c02740ea06ef5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 13 Feb 2020 22:12:05 +0800
-Subject: bcache: ignore pending signals when creating gc and allocator thread
-
-From: Coly Li <colyli@suse.de>
-
-[ Upstream commit 0b96da639a4874311e9b5156405f69ef9fc3bef8 ]
-
-When run a cache set, all the bcache btree node of this cache set will
-be checked by bch_btree_check(). If the bcache btree is very large,
-iterating all the btree nodes will occupy too much system memory and
-the bcache registering process might be selected and killed by system
-OOM killer. kthread_run() will fail if current process has pending
-signal, therefore the kthread creating in run_cache_set() for gc and
-allocator kernel threads are very probably failed for a very large
-bcache btree.
-
-Indeed such OOM is safe and the registering process will exit after
-the registration done. Therefore this patch flushes pending signals
-during the cache set start up, specificly in bch_cache_allocator_start()
-and bch_gc_thread_start(), to make sure run_cache_set() won't fail for
-large cahced data set.
-
-Signed-off-by: Coly Li <colyli@suse.de>
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/bcache/alloc.c | 18 ++++++++++++++++--
- drivers/md/bcache/btree.c | 13 +++++++++++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
-index a1df0d95151c6..8bc1faf71ff2f 100644
---- a/drivers/md/bcache/alloc.c
-+++ b/drivers/md/bcache/alloc.c
-@@ -67,6 +67,7 @@
- #include <linux/blkdev.h>
- #include <linux/kthread.h>
- #include <linux/random.h>
-+#include <linux/sched/signal.h>
- #include <trace/events/bcache.h>
- #define MAX_OPEN_BUCKETS 128
-@@ -733,8 +734,21 @@ int bch_open_buckets_alloc(struct cache_set *c)
- int bch_cache_allocator_start(struct cache *ca)
- {
--      struct task_struct *k = kthread_run(bch_allocator_thread,
--                                          ca, "bcache_allocator");
-+      struct task_struct *k;
-+
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-+      k = kthread_run(bch_allocator_thread, ca, "bcache_allocator");
-       if (IS_ERR(k))
-               return PTR_ERR(k);
-diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
-index 46a8b5a91c386..a6e05503b7723 100644
---- a/drivers/md/bcache/btree.c
-+++ b/drivers/md/bcache/btree.c
-@@ -34,6 +34,7 @@
- #include <linux/random.h>
- #include <linux/rcupdate.h>
- #include <linux/sched/clock.h>
-+#include <linux/sched/signal.h>
- #include <linux/rculist.h>
- #include <linux/delay.h>
- #include <trace/events/bcache.h>
-@@ -1908,6 +1909,18 @@ static int bch_gc_thread(void *arg)
- int bch_gc_thread_start(struct cache_set *c)
- {
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-       c->gc_thread = kthread_run(bch_gc_thread, c, "bcache_gc");
-       return PTR_ERR_OR_ZERO(c->gc_thread);
- }
--- 
-2.20.1
-
index dd21548530004c676a9e75f80624f3369046f4fb..56027c384ca7e88625adcfe0e17fd21b93238e0f 100644 (file)
@@ -59,7 +59,6 @@ net-ena-ethtool-use-correct-value-for-crc32-hash.patch
 net-ena-ena-com.c-prevent-null-pointer-dereference.patch
 ice-update-unit-load-status-bitmask-to-check-after-r.patch
 cifs-fix-mode-output-in-debugging-statements.patch
-bcache-ignore-pending-signals-when-creating-gc-and-a.patch
 cfg80211-add-missing-policy-for-nl80211_attr_status_.patch
 mac80211-fix-wrong-160-80-80-mhz-setting.patch
 net-hns3-add-management-table-after-imp-reset.patch
diff --git a/queue-5.5/bcache-ignore-pending-signals-when-creating-gc-and-a.patch b/queue-5.5/bcache-ignore-pending-signals-when-creating-gc-and-a.patch
deleted file mode 100644 (file)
index 34494e5..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From 429f2080e4ccd161c981ba5e0942237d81797024 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 13 Feb 2020 22:12:05 +0800
-Subject: bcache: ignore pending signals when creating gc and allocator thread
-
-From: Coly Li <colyli@suse.de>
-
-[ Upstream commit 0b96da639a4874311e9b5156405f69ef9fc3bef8 ]
-
-When run a cache set, all the bcache btree node of this cache set will
-be checked by bch_btree_check(). If the bcache btree is very large,
-iterating all the btree nodes will occupy too much system memory and
-the bcache registering process might be selected and killed by system
-OOM killer. kthread_run() will fail if current process has pending
-signal, therefore the kthread creating in run_cache_set() for gc and
-allocator kernel threads are very probably failed for a very large
-bcache btree.
-
-Indeed such OOM is safe and the registering process will exit after
-the registration done. Therefore this patch flushes pending signals
-during the cache set start up, specificly in bch_cache_allocator_start()
-and bch_gc_thread_start(), to make sure run_cache_set() won't fail for
-large cahced data set.
-
-Signed-off-by: Coly Li <colyli@suse.de>
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/bcache/alloc.c | 18 ++++++++++++++++--
- drivers/md/bcache/btree.c | 13 +++++++++++++
- 2 files changed, 29 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
-index a1df0d95151c6..8bc1faf71ff2f 100644
---- a/drivers/md/bcache/alloc.c
-+++ b/drivers/md/bcache/alloc.c
-@@ -67,6 +67,7 @@
- #include <linux/blkdev.h>
- #include <linux/kthread.h>
- #include <linux/random.h>
-+#include <linux/sched/signal.h>
- #include <trace/events/bcache.h>
- #define MAX_OPEN_BUCKETS 128
-@@ -733,8 +734,21 @@ int bch_open_buckets_alloc(struct cache_set *c)
- int bch_cache_allocator_start(struct cache *ca)
- {
--      struct task_struct *k = kthread_run(bch_allocator_thread,
--                                          ca, "bcache_allocator");
-+      struct task_struct *k;
-+
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-+      k = kthread_run(bch_allocator_thread, ca, "bcache_allocator");
-       if (IS_ERR(k))
-               return PTR_ERR(k);
-diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
-index 14d6c33b0957e..78f0711a25849 100644
---- a/drivers/md/bcache/btree.c
-+++ b/drivers/md/bcache/btree.c
-@@ -34,6 +34,7 @@
- #include <linux/random.h>
- #include <linux/rcupdate.h>
- #include <linux/sched/clock.h>
-+#include <linux/sched/signal.h>
- #include <linux/rculist.h>
- #include <linux/delay.h>
- #include <trace/events/bcache.h>
-@@ -1917,6 +1918,18 @@ static int bch_gc_thread(void *arg)
- int bch_gc_thread_start(struct cache_set *c)
- {
-+      /*
-+       * In case previous btree check operation occupies too many
-+       * system memory for bcache btree node cache, and the
-+       * registering process is selected by OOM killer. Here just
-+       * ignore the SIGKILL sent by OOM killer if there is, to
-+       * avoid kthread_run() being failed by pending signals. The
-+       * bcache registering process will exit after the registration
-+       * done.
-+       */
-+      if (signal_pending(current))
-+              flush_signals(current);
-+
-       c->gc_thread = kthread_run(bch_gc_thread, c, "bcache_gc");
-       return PTR_ERR_OR_ZERO(c->gc_thread);
- }
--- 
-2.20.1
-
index ede27e583c4fbc558d5dc39f7a5a38cfa23a1c40..d96f882d995befb68a4eb6ba7a582d7e852ed0a3 100644 (file)
@@ -69,7 +69,6 @@ ice-use-ice_pf_to_dev.patch
 ice-use-correct-netif-error-function.patch
 io-wq-don-t-call-kxalloc_node-with-non-online-node.patch
 cifs-fix-mode-output-in-debugging-statements.patch
-bcache-ignore-pending-signals-when-creating-gc-and-a.patch
 cfg80211-add-missing-policy-for-nl80211_attr_status_.patch
 mac80211-fix-wrong-160-80-80-mhz-setting.patch
 net-hns3-add-management-table-after-imp-reset.patch