From: Will Deacon <will.deacon@arm.com>
To: lkp@lists.01.org
Subject: Re: [mm, page_alloc] d0164adc89: -100.0% fsmark.app_overhead
Date: Tue, 01 Dec 2015 12:23:41 +0000 [thread overview]
Message-ID: <20151201122340.GC2853@arm.com> (raw)
In-Reply-To: <20151130130200.GA21950@dhcp22.suse.cz>
[-- Attachment #1: Type: text/plain, Size: 2157 bytes --]
Hi Michal,
On Mon, Nov 30, 2015 at 02:02:00PM +0100, Michal Hocko wrote:
> [Let's CC Will - see the question at the end of the email please]
[...]
> > > There is no reference to OOM possibility in the email that I can see. Can
> > > you give examples of the OOM messages that shows the problem sites? It was
> > > suspected that there may be some callers that were accidentally depending
> > > on access to emergency reserves. If so, either they need to be fixed (if
> > > the case is extremely rare) or a small reserve will have to be created
> > > for callers that are not high priority but still cannot reclaim.
>
> __virtblk_add_req calls
> virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC)
> alloc_indirect(gfp)
> gfp &= ~(__GFP_HIGHMEM | __GFP_HIGH)
>
> So this is true __GFP_ATOMIC, we just drop __GFP_HIGH so it doesn't get
> access to more reserves. It still does ALLOC_HARDER. So I think the real
> issue is somewhere else when something should have triggered kswapd and
> it doesn't do that anymore. I have tried to find that offender the last
> time but didn't manage to find any.
>
> Btw. I completely miss why b92b1b89a33c ("virtio: force vring
> descriptors to be allocated from lowmem") had to clear __GFP_HIGH. Will
> do you remember why you have dropped that flag as well?
Right, that looks unnecessary, but it could be that we were masking a
bug somewhere else.
> Also I do not seem to find any user of alloc_indirect which would do
> __GFP_HIGHMEM. All of them are either GFP_KERNEL or GFP_ATOMIC. So
> either I am missing something or this is not really needed. Maybe the
> situation was different back in 2012.
I tried to revisit the thread leading to that patch, but it doesn't make
a whole lot of sense:
https://lkml.org/lkml/2012/10/17/143
I certainly remember debugging the failure (i.e. it wasn't theoretical),
and we were ending up with highmem addresses being passed in the virtio
ring (due to the zero-copy stuff in 9p) and also for the descriptors
themselves. The discussion at the time makes it sound like GFP_ATOMIC
was giving us those...
Will
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: "Huang, Ying" <ying.huang@linux.intel.com>,
Mel Gorman <mgorman@techsingularity.net>,
lkp@01.org, LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Rik van Riel <riel@redhat.com>,
Vitaly Wool <vitalywool@gmail.com>,
David Rientjes <rientjes@google.com>,
Christoph Lameter <cl@linux.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Vlastimil Babka <vbabka@suse.cz>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [lkp] [mm, page_alloc] d0164adc89: -100.0% fsmark.app_overhead
Date: Tue, 1 Dec 2015 12:23:41 +0000 [thread overview]
Message-ID: <20151201122340.GC2853@arm.com> (raw)
In-Reply-To: <20151130130200.GA21950@dhcp22.suse.cz>
Hi Michal,
On Mon, Nov 30, 2015 at 02:02:00PM +0100, Michal Hocko wrote:
> [Let's CC Will - see the question at the end of the email please]
[...]
> > > There is no reference to OOM possibility in the email that I can see. Can
> > > you give examples of the OOM messages that shows the problem sites? It was
> > > suspected that there may be some callers that were accidentally depending
> > > on access to emergency reserves. If so, either they need to be fixed (if
> > > the case is extremely rare) or a small reserve will have to be created
> > > for callers that are not high priority but still cannot reclaim.
>
> __virtblk_add_req calls
> virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC)
> alloc_indirect(gfp)
> gfp &= ~(__GFP_HIGHMEM | __GFP_HIGH)
>
> So this is true __GFP_ATOMIC, we just drop __GFP_HIGH so it doesn't get
> access to more reserves. It still does ALLOC_HARDER. So I think the real
> issue is somewhere else when something should have triggered kswapd and
> it doesn't do that anymore. I have tried to find that offender the last
> time but didn't manage to find any.
>
> Btw. I completely miss why b92b1b89a33c ("virtio: force vring
> descriptors to be allocated from lowmem") had to clear __GFP_HIGH. Will
> do you remember why you have dropped that flag as well?
Right, that looks unnecessary, but it could be that we were masking a
bug somewhere else.
> Also I do not seem to find any user of alloc_indirect which would do
> __GFP_HIGHMEM. All of them are either GFP_KERNEL or GFP_ATOMIC. So
> either I am missing something or this is not really needed. Maybe the
> situation was different back in 2012.
I tried to revisit the thread leading to that patch, but it doesn't make
a whole lot of sense:
https://lkml.org/lkml/2012/10/17/143
I certainly remember debugging the failure (i.e. it wasn't theoretical),
and we were ending up with highmem addresses being passed in the virtio
ring (due to the zero-copy stuff in 9p) and also for the descriptors
themselves. The discussion at the time makes it sound like GFP_ATOMIC
was giving us those...
Will
next prev parent reply other threads:[~2015-12-01 12:23 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-26 0:56 [mm, page_alloc] d0164adc89: -100.0% fsmark.app_overhead kernel test robot
2015-11-26 0:56 ` [lkp] " kernel test robot
2015-11-26 13:25 ` Mel Gorman
2015-11-26 15:03 ` Rik van Riel
2015-11-26 15:03 ` [lkp] " Rik van Riel
2015-11-27 1:14 ` Huang, Ying
2015-11-27 1:14 ` [lkp] " Huang, Ying
2015-11-27 10:06 ` Mel Gorman
2015-11-30 2:14 ` Huang, Ying
2015-11-30 2:14 ` [lkp] " Huang, Ying
2015-11-30 13:02 ` Michal Hocko
2015-11-30 13:02 ` [lkp] " Michal Hocko
2015-12-01 12:23 ` Will Deacon [this message]
2015-12-01 12:23 ` Will Deacon
2015-12-01 14:04 ` Michal Hocko
2015-12-01 14:04 ` [lkp] " Michal Hocko
2015-12-02 11:10 ` Mel Gorman
2015-12-02 11:00 ` Mel Gorman
2015-12-02 12:00 ` Michal Hocko
2015-12-02 12:00 ` [lkp] " Michal Hocko
2015-12-02 14:08 ` Mel Gorman
2015-12-02 14:15 ` Michal Hocko
2015-12-02 14:15 ` [lkp] " Michal Hocko
2015-12-02 14:45 ` Mel Gorman
2015-12-03 8:46 ` Huang, Ying
2015-12-03 8:46 ` [lkp] " Huang, Ying
2015-12-03 10:17 ` Mel Gorman
2015-12-04 1:53 ` Huang, Ying
2015-12-04 1:53 ` [lkp] " Huang, Ying
2015-12-07 16:18 ` Michal Hocko
2015-12-07 16:18 ` [lkp] " Michal Hocko
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=20151201122340.GC2853@arm.com \
--to=will.deacon@arm.com \
--cc=lkp@lists.01.org \
/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.