From: Tejun Heo <tj@kernel.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: Vlastimil Babka <vbabka@suse.cz>,
linux-mm@kvack.org, Michal Hocko <mhocko@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Marc MERLIN <marc@merlins.org>
Subject: [PATCH] block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
Date: Mon, 21 Nov 2016 18:03:32 -0500 [thread overview]
Message-ID: <20161121230332.GA3767@htj.duckdns.org> (raw)
In-Reply-To: <20161121215639.GF13371@merlins.org>
blkcg allocates some per-cgroup data structures with GFP_NOWAIT and
when that fails falls back to operations which aren't specific to the
cgroup. Occassional failures are expected under pressure and falling
back to non-cgroup operation is the right thing to do.
Unfortunately, I forgot to add __GFP_NOWARN to these allocations and
these expected failures end up creating a lot of noise. Add
__GFP_NOWARN.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Marc MERLIN <marc@merlins.org>
Reported-by: Vlastimil Babka <vbabka@suse.cz>
---
block/blk-cgroup.c | 9 +++++----
block/cfq-iosched.c | 3 ++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index b08ccbb..8ba0af7 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -185,7 +185,8 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
}
wb_congested = wb_congested_get_create(&q->backing_dev_info,
- blkcg->css.id, GFP_NOWAIT);
+ blkcg->css.id,
+ GFP_NOWAIT | __GFP_NOWARN);
if (!wb_congested) {
ret = -ENOMEM;
goto err_put_css;
@@ -193,7 +194,7 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
/* allocate */
if (!new_blkg) {
- new_blkg = blkg_alloc(blkcg, q, GFP_NOWAIT);
+ new_blkg = blkg_alloc(blkcg, q, GFP_NOWAIT | __GFP_NOWARN);
if (unlikely(!new_blkg)) {
ret = -ENOMEM;
goto err_put_congested;
@@ -1022,7 +1023,7 @@ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
}
spin_lock_init(&blkcg->lock);
- INIT_RADIX_TREE(&blkcg->blkg_tree, GFP_NOWAIT);
+ INIT_RADIX_TREE(&blkcg->blkg_tree, GFP_NOWAIT | __GFP_NOWARN);
INIT_HLIST_HEAD(&blkcg->blkg_list);
#ifdef CONFIG_CGROUP_WRITEBACK
INIT_LIST_HEAD(&blkcg->cgwb_list);
@@ -1240,7 +1241,7 @@ int blkcg_activate_policy(struct request_queue *q,
if (blkg->pd[pol->plid])
continue;
- pd = pol->pd_alloc_fn(GFP_NOWAIT, q->node);
+ pd = pol->pd_alloc_fn(GFP_NOWAIT | __GFP_NOWARN, q->node);
if (!pd)
swap(pd, pd_prealloc);
if (!pd) {
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5e24d88..b4c3b6c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3854,7 +3854,8 @@ cfq_get_queue(struct cfq_data *cfqd, bool is_sync, struct cfq_io_cq *cic,
goto out;
}
- cfqq = kmem_cache_alloc_node(cfq_pool, GFP_NOWAIT | __GFP_ZERO,
+ cfqq = kmem_cache_alloc_node(cfq_pool,
+ GFP_NOWAIT | __GFP_ZERO | __GFP_NOWARN,
cfqd->queue->node);
if (!cfqq) {
cfqq = &cfqd->oom_cfqq;
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: Vlastimil Babka <vbabka@suse.cz>,
linux-mm@kvack.org, Michal Hocko <mhocko@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Marc MERLIN <marc@merlins.org>
Subject: [PATCH] block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
Date: Mon, 21 Nov 2016 18:03:32 -0500 [thread overview]
Message-ID: <20161121230332.GA3767@htj.duckdns.org> (raw)
In-Reply-To: <20161121215639.GF13371@merlins.org>
blkcg allocates some per-cgroup data structures with GFP_NOWAIT and
when that fails falls back to operations which aren't specific to the
cgroup. Occassional failures are expected under pressure and falling
back to non-cgroup operation is the right thing to do.
Unfortunately, I forgot to add __GFP_NOWARN to these allocations and
these expected failures end up creating a lot of noise. Add
__GFP_NOWARN.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Marc MERLIN <marc@merlins.org>
Reported-by: Vlastimil Babka <vbabka@suse.cz>
---
block/blk-cgroup.c | 9 +++++----
block/cfq-iosched.c | 3 ++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index b08ccbb..8ba0af7 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -185,7 +185,8 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
}
wb_congested = wb_congested_get_create(&q->backing_dev_info,
- blkcg->css.id, GFP_NOWAIT);
+ blkcg->css.id,
+ GFP_NOWAIT | __GFP_NOWARN);
if (!wb_congested) {
ret = -ENOMEM;
goto err_put_css;
@@ -193,7 +194,7 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
/* allocate */
if (!new_blkg) {
- new_blkg = blkg_alloc(blkcg, q, GFP_NOWAIT);
+ new_blkg = blkg_alloc(blkcg, q, GFP_NOWAIT | __GFP_NOWARN);
if (unlikely(!new_blkg)) {
ret = -ENOMEM;
goto err_put_congested;
@@ -1022,7 +1023,7 @@ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
}
spin_lock_init(&blkcg->lock);
- INIT_RADIX_TREE(&blkcg->blkg_tree, GFP_NOWAIT);
+ INIT_RADIX_TREE(&blkcg->blkg_tree, GFP_NOWAIT | __GFP_NOWARN);
INIT_HLIST_HEAD(&blkcg->blkg_list);
#ifdef CONFIG_CGROUP_WRITEBACK
INIT_LIST_HEAD(&blkcg->cgwb_list);
@@ -1240,7 +1241,7 @@ int blkcg_activate_policy(struct request_queue *q,
if (blkg->pd[pol->plid])
continue;
- pd = pol->pd_alloc_fn(GFP_NOWAIT, q->node);
+ pd = pol->pd_alloc_fn(GFP_NOWAIT | __GFP_NOWARN, q->node);
if (!pd)
swap(pd, pd_prealloc);
if (!pd) {
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5e24d88..b4c3b6c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3854,7 +3854,8 @@ cfq_get_queue(struct cfq_data *cfqd, bool is_sync, struct cfq_io_cq *cic,
goto out;
}
- cfqq = kmem_cache_alloc_node(cfq_pool, GFP_NOWAIT | __GFP_ZERO,
+ cfqq = kmem_cache_alloc_node(cfq_pool,
+ GFP_NOWAIT | __GFP_ZERO | __GFP_NOWARN,
cfqd->queue->node);
if (!cfqq) {
cfqq = &cfqd->oom_cfqq;
next prev parent reply other threads:[~2016-11-21 23:03 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-21 15:43 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free Marc MERLIN
2016-11-21 16:30 ` Marc MERLIN
2016-11-21 21:50 ` Vlastimil Babka
2016-11-21 21:50 ` Vlastimil Babka
2016-11-21 21:56 ` Marc MERLIN
2016-11-21 21:56 ` Marc MERLIN
2016-11-21 23:03 ` Tejun Heo [this message]
2016-11-21 23:03 ` [PATCH] block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg Tejun Heo
2016-11-22 15:47 ` Vlastimil Babka
2016-11-22 15:47 ` Vlastimil Babka
2016-11-22 16:48 ` Tejun Heo
2016-11-22 16:48 ` Tejun Heo
2016-11-22 22:13 ` Linus Torvalds
2016-11-22 22:13 ` Linus Torvalds
2016-11-23 8:50 ` Vlastimil Babka
2016-11-23 8:50 ` Vlastimil Babka
2016-11-28 17:19 ` Tejun Heo
2016-11-28 17:19 ` Tejun Heo
2016-11-29 7:25 ` Michal Hocko
2016-11-29 7:25 ` Michal Hocko
2016-11-29 16:38 ` Tejun Heo
2016-11-29 16:38 ` Tejun Heo
2016-11-29 16:57 ` Vlastimil Babka
2016-11-29 16:57 ` Vlastimil Babka
2016-11-29 17:13 ` Michal Hocko
2016-11-29 17:13 ` Michal Hocko
2016-11-29 17:17 ` Linus Torvalds
2016-11-29 17:17 ` Linus Torvalds
2016-11-29 17:28 ` Michal Hocko
2016-11-29 17:28 ` Michal Hocko
2016-11-29 17:48 ` Linus Torvalds
2016-11-29 17:48 ` Linus Torvalds
2016-11-22 16:00 ` Jens Axboe
2016-11-22 16:00 ` Jens Axboe
2016-11-22 16:06 ` 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free Marc MERLIN
2016-11-22 16:06 ` Marc MERLIN
2016-11-22 16:14 ` Vlastimil Babka
2016-11-22 16:14 ` Vlastimil Babka
2016-11-22 16:25 ` Michal Hocko
2016-11-22 16:25 ` Michal Hocko
2016-11-22 16:47 ` Marc MERLIN
2016-11-22 16:47 ` Marc MERLIN
2016-11-22 16:38 ` Greg Kroah-Hartman
2016-11-22 16:38 ` Greg Kroah-Hartman
2016-11-29 16:25 ` Michal Hocko
2016-11-29 16:25 ` Michal Hocko
2016-11-29 16:43 ` Patch "mm, oom: stop pre-mature high-order OOM killer invocations" has been added to the 4.8-stable tree gregkh
2016-11-29 16:43 ` 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free Greg Kroah-Hartman
2016-11-29 16:43 ` Greg Kroah-Hartman
2016-11-22 19:38 ` Linus Torvalds
2016-11-22 19:38 ` Linus Torvalds
2016-11-23 6:34 ` Michal Hocko
2016-11-23 6:34 ` Michal Hocko
2016-11-23 6:53 ` Hillf Danton
2016-11-23 6:53 ` Hillf Danton
2016-11-23 7:00 ` Michal Hocko
2016-11-23 7:00 ` Michal Hocko
2016-11-23 9:18 ` Vlastimil Babka
2016-11-23 9:18 ` Vlastimil Babka
2016-11-28 7:23 ` Michal Hocko
2016-11-28 7:23 ` Michal Hocko
2016-11-28 20:55 ` Marc MERLIN
2016-11-29 15:55 ` Marc MERLIN
2016-11-29 15:55 ` Marc MERLIN
2016-11-29 16:07 ` Michal Hocko
2016-11-29 16:07 ` Michal Hocko
2016-11-29 16:34 ` Marc MERLIN
2016-11-29 16:34 ` Marc MERLIN
2016-11-29 17:07 ` Linus Torvalds
2016-11-29 17:07 ` Linus Torvalds
2016-11-29 17:40 ` Marc MERLIN
2016-11-29 17:40 ` Marc MERLIN
2016-11-29 18:01 ` Linus Torvalds
2016-11-29 18:01 ` Linus Torvalds
2016-11-30 17:47 ` Marc MERLIN
2016-11-30 17:47 ` Marc MERLIN
2016-11-30 18:14 ` Linus Torvalds
2016-11-30 18:21 ` Marc MERLIN
2016-11-30 18:21 ` Marc MERLIN
2016-11-30 18:27 ` Jens Axboe
2016-11-30 18:27 ` Jens Axboe
2016-11-30 20:30 ` Tejun Heo
2016-11-30 20:30 ` Tejun Heo
2016-12-01 13:50 ` Kent Overstreet
2016-12-01 13:50 ` Kent Overstreet
2016-12-01 18:16 ` Linus Torvalds
2016-12-01 18:16 ` Linus Torvalds
2016-12-01 18:30 ` Jens Axboe
2016-12-01 18:30 ` Jens Axboe
2016-12-01 18:37 ` Linus Torvalds
2016-12-01 18:37 ` Linus Torvalds
2016-12-01 18:46 ` Jens Axboe
2016-12-01 18:46 ` Jens Axboe
2016-11-29 20:11 ` Holger Hoffstätte
2016-11-29 23:01 ` Marc MERLIN
2016-11-29 23:01 ` Marc MERLIN
2016-11-30 13:58 ` Tetsuo Handa
2016-11-30 13:58 ` Tetsuo Handa
2017-05-02 4:12 ` Marc MERLIN
2017-05-02 4:12 ` Marc MERLIN
2017-05-02 7:44 ` Michal Hocko
2017-05-02 7:44 ` Michal Hocko
2017-05-02 14:15 ` Marc MERLIN
2017-05-02 14:15 ` Marc MERLIN
2017-05-02 10:44 ` Tetsuo Handa
2017-05-02 10:44 ` Tetsuo Handa
2016-11-29 16:15 ` Marc MERLIN
2016-11-29 16:15 ` Marc MERLIN
2016-11-22 21:46 ` Simon Kirby
2016-11-22 21:46 ` Simon Kirby
2016-11-28 8:06 ` Vlastimil Babka
2016-11-28 8:06 ` Vlastimil Babka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161121230332.GA3767@htj.duckdns.org \
--to=tj@kernel.org \
--cc=axboe@kernel.dk \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=marc@merlins.org \
--cc=mhocko@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.