From: Jens Axboe <axboe@fb.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: Kent Overstreet <kent.overstreet@gmail.com>, Tejun Heo <tj@kernel.org>, Marc MERLIN <marc@merlins.org>, Michal Hocko <mhocko@kernel.org>, "Vlastimil Babka" <vbabka@suse.cz>, linux-mm <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org> Subject: Re: 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free Date: Thu, 1 Dec 2016 11:46:00 -0700 [thread overview] Message-ID: <cf7542c0-46ed-009f-a214-561855561b3c@fb.com> (raw) In-Reply-To: <CA+55aFxFXKS3udYZMmBTqtk=FEb2e+soS7_WO0dDht4sTwRqaQ@mail.gmail.com> On 12/01/2016 11:37 AM, Linus Torvalds wrote: > On Thu, Dec 1, 2016 at 10:30 AM, Jens Axboe <axboe@fb.com> wrote: >> >> It's two different kinds of throttling. The vm absolutely should >> throttle at dirty time, to avoid having insane amounts of memory dirty. >> On the block layer side, throttling is about avoid the device queues >> being too long. It's very similar to the buffer bloating on the >> networking side. The block layer throttling is not a fix for the vm >> allowing too much memory to be dirty and causing issues, it's about >> keeping the device response latencies in check. > > Sure. But if we really do just end up blocking in the block layer (in > situations where we didn't used to), that may be a bad thing. It might > be better to feed that information back to the VM instead, > particularly for writes, where the VM layer already tries to ratelimit > the writes. It's not a new blocking point, it's the same blocking point that we always end up in, if we run out of requests. The problem with bcache and other stacked drivers is that they don't have a request pool, so they never really need to block there. > And frankly, it's almost purely writes that matter. There just aren't > a lot of ways to get that many parallel reads in real life. Exactly, it's almost exclusively a buffered write problem, as I wrote in the initial reply. Most other things tend to throttle nicely on their own. > I haven't looked at your patches, so maybe you already do this. It's currently not fed back, but that would be pretty trivial to do. The mechanism we have for that (queue congestion) is a bit of a mess, though, so it would need to be revamped a bit. -- Jens Axboe
WARNING: multiple messages have this Message-ID (diff)
From: Jens Axboe <axboe@fb.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: Kent Overstreet <kent.overstreet@gmail.com>, Tejun Heo <tj@kernel.org>, Marc MERLIN <marc@merlins.org>, Michal Hocko <mhocko@kernel.org>, Vlastimil Babka <vbabka@suse.cz>, linux-mm <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org> Subject: Re: 4.8.8 kernel trigger OOM killer repeatedly when I have lots of RAM that should be free Date: Thu, 1 Dec 2016 11:46:00 -0700 [thread overview] Message-ID: <cf7542c0-46ed-009f-a214-561855561b3c@fb.com> (raw) In-Reply-To: <CA+55aFxFXKS3udYZMmBTqtk=FEb2e+soS7_WO0dDht4sTwRqaQ@mail.gmail.com> On 12/01/2016 11:37 AM, Linus Torvalds wrote: > On Thu, Dec 1, 2016 at 10:30 AM, Jens Axboe <axboe@fb.com> wrote: >> >> It's two different kinds of throttling. The vm absolutely should >> throttle at dirty time, to avoid having insane amounts of memory dirty. >> On the block layer side, throttling is about avoid the device queues >> being too long. It's very similar to the buffer bloating on the >> networking side. The block layer throttling is not a fix for the vm >> allowing too much memory to be dirty and causing issues, it's about >> keeping the device response latencies in check. > > Sure. But if we really do just end up blocking in the block layer (in > situations where we didn't used to), that may be a bad thing. It might > be better to feed that information back to the VM instead, > particularly for writes, where the VM layer already tries to ratelimit > the writes. It's not a new blocking point, it's the same blocking point that we always end up in, if we run out of requests. The problem with bcache and other stacked drivers is that they don't have a request pool, so they never really need to block there. > And frankly, it's almost purely writes that matter. There just aren't > a lot of ways to get that many parallel reads in real life. Exactly, it's almost exclusively a buffered write problem, as I wrote in the initial reply. Most other things tend to throttle nicely on their own. > I haven't looked at your patches, so maybe you already do this. It's currently not fed back, but that would be pretty trivial to do. The mechanism we have for that (queue congestion) is a bit of a mess, though, so it would need to be revamped a bit. -- Jens Axboe -- 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>
next prev parent reply other threads:[~2016-12-01 18:46 UTC|newest] Thread overview: 113+ 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 ` [PATCH] block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg Tejun Heo 2016-11-21 23:03 ` 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: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 [this message] 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=cf7542c0-46ed-009f-a214-561855561b3c@fb.com \ --to=axboe@fb.com \ --cc=gregkh@linuxfoundation.org \ --cc=iamjoonsoo.kim@lge.com \ --cc=kent.overstreet@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=marc@merlins.org \ --cc=mhocko@kernel.org \ --cc=tj@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: linkBe 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.