From 3356854a8cb6ec65f803f1864bf65d306f794725 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 12 Jun 2017 11:31:51 +0200 Subject: [PATCH] drop queue-3.18/cpuset-consider-dying-css-as-offline.patch --- ...cpuset-consider-dying-css-as-offline.patch | 79 ------------------- queue-3.18/series | 1 - 2 files changed, 80 deletions(-) delete mode 100644 queue-3.18/cpuset-consider-dying-css-as-offline.patch diff --git a/queue-3.18/cpuset-consider-dying-css-as-offline.patch b/queue-3.18/cpuset-consider-dying-css-as-offline.patch deleted file mode 100644 index 2a2f5d24977..00000000000 --- a/queue-3.18/cpuset-consider-dying-css-as-offline.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 41c25707d21716826e3c1f60967f5550610ec1c9 Mon Sep 17 00:00:00 2001 -From: Tejun Heo -Date: Wed, 24 May 2017 12:03:48 -0400 -Subject: cpuset: consider dying css as offline - -From: Tejun Heo - -commit 41c25707d21716826e3c1f60967f5550610ec1c9 upstream. - -In most cases, a cgroup controller don't care about the liftimes of -cgroups. For the controller, a css becomes online when ->css_online() -is called on it and offline when ->css_offline() is called. - -However, cpuset is special in that the user interface it exposes cares -whether certain cgroups exist or not. Combined with the RCU delay -between cgroup removal and css offlining, this can lead to user -visible behavior oddities where operations which should succeed after -cgroup removals fail for some time period. The effects of cgroup -removals are delayed when seen from userland. - -This patch adds css_is_dying() which tests whether offline is pending -and updates is_cpuset_online() so that the function returns false also -while offline is pending. This gets rid of the userland visible -delays. - -Signed-off-by: Tejun Heo -Reported-by: Daniel Jordan -Link: http://lkml.kernel.org/r/327ca1f5-7957-fbb9-9e5f-9ba149d40ba2@oracle.com -Signed-off-by: Tejun Heo -Signed-off-by: Greg Kroah-Hartman - ---- - include/linux/cgroup.h | 20 ++++++++++++++++++++ - kernel/cpuset.c | 4 ++-- - 2 files changed, 22 insertions(+), 2 deletions(-) - ---- a/include/linux/cgroup.h -+++ b/include/linux/cgroup.h -@@ -148,6 +148,26 @@ static inline bool css_tryget_online(str - } - - /** -+ * css_is_dying - test whether the specified css is dying -+ * @css: target css -+ * -+ * Test whether @css is in the process of offlining or already offline. In -+ * most cases, ->css_online() and ->css_offline() callbacks should be -+ * enough; however, the actual offline operations are RCU delayed and this -+ * test returns %true also when @css is scheduled to be offlined. -+ * -+ * This is useful, for example, when the use case requires synchronous -+ * behavior with respect to cgroup removal. cgroup removal schedules css -+ * offlining but the css can seem alive while the operation is being -+ * delayed. If the delay affects user visible semantics, this test can be -+ * used to resolve the situation. -+ */ -+static inline bool css_is_dying(struct cgroup_subsys_state *css) -+{ -+ return !(css->flags & CSS_NO_REF) && percpu_ref_is_dying(&css->refcnt); -+} -+ -+/** - * css_put - put a css reference - * @css: target css - * ---- a/kernel/cpuset.c -+++ b/kernel/cpuset.c -@@ -174,9 +174,9 @@ typedef enum { - } cpuset_flagbits_t; - - /* convenient tests for these bits */ --static inline bool is_cpuset_online(const struct cpuset *cs) -+static inline bool is_cpuset_online(struct cpuset *cs) - { -- return test_bit(CS_ONLINE, &cs->flags); -+ return test_bit(CS_ONLINE, &cs->flags) && !css_is_dying(&cs->css); - } - - static inline int is_cpu_exclusive(const struct cpuset *cs) diff --git a/queue-3.18/series b/queue-3.18/series index f02d722179f..d4195d291b1 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -24,6 +24,5 @@ iio-proximity-as3935-fix-as3935_int-mask.patch drivers-char-random-add-get_random_long.patch random-properly-align-get_random_int_hash.patch stackprotector-increase-the-per-task-stack-canary-s-random-range-from-32-bits-to-64-bits-on-64-bit-platforms.patch -cpuset-consider-dying-css-as-offline.patch btrfs-use-correct-types-for-page-indices-in-btrfs_page_exists_in_range.patch btrfs-fix-memory-leak-in-update_space_info-failure-path.patch -- 2.47.3