From: Dave Jones <davej@redhat.com>
To: Hugh Dickins <hughd@google.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: shmem_getpage_gfp VM_BUG_ON triggered. [3.7rc2]
Date: Thu, 25 Oct 2012 07:14:11 -0400 [thread overview]
Message-ID: <20121025111411.GB24886@redhat.com> (raw)
In-Reply-To: <alpine.LNX.2.00.1210242121410.1697@eggly.anvils>
On Wed, Oct 24, 2012 at 09:36:27PM -0700, Hugh Dickins wrote:
> > 1148 error = shmem_add_to_page_cache(page, mapping, index,
> > 1149 gfp, swp_to_radix_entry(swap));
> > 1150 /* We already confirmed swap, and make no allocation */
> > 1151 VM_BUG_ON(error);
> > 1152 }
>
> That's very surprising. Easy enough to handle an error there, but
> of course I made it a VM_BUG_ON because it violates my assumptions:
> I rather need to understand how this can be, and I've no idea.
>
> Clutching at straws, I expect this is entirely irrelevant, but:
> there isn't a warning on line 1151 of mm/shmem.c in 3.7.0-rc2 nor
> in current linux.git; rather, there's a VM_BUG_ON on line 1149.
>
> So you've inserted a couple of lines for some reason (more useful
> trinity behaviour, perhaps)?
detritus from the recent mpol_to_str bug that I was chasing.
Shouldn't be relevant...
diff -durpN '--exclude-from=/home/davej/.exclude' src/git-trees/kernel/linux/mm>
--- src/git-trees/kernel/linux/mm/shmem.c 2012-10-12 10:01:46.613408580 ->
+++ linux-dj/mm/shmem.c 2012-10-15 12:31:32.979653309 -0400
@@ -885,13 +885,15 @@ redirty:
static void shmem_show_mpol(struct seq_file *seq, struct mempolicy *mpol)
{
char buffer[64];
+ int ret;
if (!mpol || mpol->mode == MPOL_DEFAULT)
return; /* show nothing */
- mpol_to_str(buffer, sizeof(buffer), mpol, 1);
-
- seq_printf(seq, ",mpol=%s", buffer);
+ memset(buffer, 0, sizeof(buffer));
+ ret = mpol_to_str(buffer, sizeof(buffer), mpol, 1);
+ if (ret > 0)
+ seq_printf(seq, ",mpol=%s", buffer);
}
> And have some config option I'm
> unfamiliar with, that mutates a BUG_ON or VM_BUG_ON into a warning?
Yes, I do have this..
-#define VM_BUG_ON(cond) BUG_ON(cond)
+#define VM_BUG_ON(cond) WARN_ON(cond)
because I got tired of things not going over my usb serial port when I hit them
a while ago. BUG_ON is pretty unfriendly to bug finding.
Dave
--
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: Dave Jones <davej@redhat.com>
To: Hugh Dickins <hughd@google.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: shmem_getpage_gfp VM_BUG_ON triggered. [3.7rc2]
Date: Thu, 25 Oct 2012 07:14:11 -0400 [thread overview]
Message-ID: <20121025111411.GB24886@redhat.com> (raw)
In-Reply-To: <alpine.LNX.2.00.1210242121410.1697@eggly.anvils>
On Wed, Oct 24, 2012 at 09:36:27PM -0700, Hugh Dickins wrote:
> > 1148 error = shmem_add_to_page_cache(page, mapping, index,
> > 1149 gfp, swp_to_radix_entry(swap));
> > 1150 /* We already confirmed swap, and make no allocation */
> > 1151 VM_BUG_ON(error);
> > 1152 }
>
> That's very surprising. Easy enough to handle an error there, but
> of course I made it a VM_BUG_ON because it violates my assumptions:
> I rather need to understand how this can be, and I've no idea.
>
> Clutching at straws, I expect this is entirely irrelevant, but:
> there isn't a warning on line 1151 of mm/shmem.c in 3.7.0-rc2 nor
> in current linux.git; rather, there's a VM_BUG_ON on line 1149.
>
> So you've inserted a couple of lines for some reason (more useful
> trinity behaviour, perhaps)?
detritus from the recent mpol_to_str bug that I was chasing.
Shouldn't be relevant...
diff -durpN '--exclude-from=/home/davej/.exclude' src/git-trees/kernel/linux/mm>
--- src/git-trees/kernel/linux/mm/shmem.c 2012-10-12 10:01:46.613408580 ->
+++ linux-dj/mm/shmem.c 2012-10-15 12:31:32.979653309 -0400
@@ -885,13 +885,15 @@ redirty:
static void shmem_show_mpol(struct seq_file *seq, struct mempolicy *mpol)
{
char buffer[64];
+ int ret;
if (!mpol || mpol->mode == MPOL_DEFAULT)
return; /* show nothing */
- mpol_to_str(buffer, sizeof(buffer), mpol, 1);
-
- seq_printf(seq, ",mpol=%s", buffer);
+ memset(buffer, 0, sizeof(buffer));
+ ret = mpol_to_str(buffer, sizeof(buffer), mpol, 1);
+ if (ret > 0)
+ seq_printf(seq, ",mpol=%s", buffer);
}
> And have some config option I'm
> unfamiliar with, that mutates a BUG_ON or VM_BUG_ON into a warning?
Yes, I do have this..
-#define VM_BUG_ON(cond) BUG_ON(cond)
+#define VM_BUG_ON(cond) WARN_ON(cond)
because I got tired of things not going over my usb serial port when I hit them
a while ago. BUG_ON is pretty unfriendly to bug finding.
Dave
next prev parent reply other threads:[~2012-10-25 11:14 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-25 2:37 shmem_getpage_gfp VM_BUG_ON triggered. [3.7rc2] Dave Jones
2012-10-25 2:37 ` Dave Jones
2012-10-25 4:36 ` Hugh Dickins
2012-10-25 4:36 ` Hugh Dickins
2012-10-25 4:50 ` Ni zhan Chen
2012-10-25 4:50 ` Ni zhan Chen
2012-10-25 6:59 ` Hugh Dickins
2012-10-25 6:59 ` Hugh Dickins
2012-10-25 9:53 ` Ni zhan Chen
2012-10-25 10:21 ` Ni zhan Chen
2012-10-25 10:21 ` Ni zhan Chen
2012-10-25 21:27 ` Hugh Dickins
2012-10-25 21:27 ` Hugh Dickins
2012-10-26 1:48 ` Ni zhan Chen
2012-10-26 1:48 ` Ni zhan Chen
2012-10-25 11:14 ` Dave Jones [this message]
2012-10-25 11:14 ` Dave Jones
2012-10-25 21:28 ` Hugh Dickins
2012-10-25 21:28 ` Hugh Dickins
2012-10-25 20:52 ` Johannes Weiner
2012-10-25 20:52 ` Johannes Weiner
2012-10-25 21:48 ` Hugh Dickins
2012-10-25 21:48 ` Hugh Dickins
2012-10-26 2:15 ` Ni zhan Chen
2012-10-26 2:15 ` Ni zhan Chen
2012-11-01 19:10 ` Dave Jones
2012-11-01 19:10 ` Dave Jones
2012-11-01 23:03 ` Hugh Dickins
2012-11-01 23:03 ` Hugh Dickins
2012-11-01 23:20 ` Dave Jones
2012-11-01 23:20 ` Dave Jones
2012-11-01 23:48 ` Hugh Dickins
2012-11-01 23:48 ` Hugh Dickins
2012-11-02 1:43 ` Dave Jones
2012-11-02 1:43 ` Dave Jones
2012-11-02 23:26 ` Hugh Dickins
2012-11-02 23:26 ` Hugh Dickins
2012-11-06 1:32 ` [PATCH] tmpfs: fix shmem_getpage_gfp VM_BUG_ON Hugh Dickins
2012-11-06 1:32 ` Hugh Dickins
2012-11-06 13:54 ` Dave Jones
2012-11-06 13:54 ` Dave Jones
2012-11-06 23:48 ` Hugh Dickins
2012-11-06 23:48 ` Hugh Dickins
2012-11-07 22:38 ` Dave Jones
2012-11-07 22:38 ` Dave Jones
2012-11-14 1:36 ` [PATCH] tmpfs: fix shmem_getpage_gfp VM_BUG_ON fix Hugh Dickins
2012-11-14 1:36 ` Hugh Dickins
2012-11-14 3:07 ` [PATCH] tmpfs: fix shmem_getpage_gfp VM_BUG_ON Jaegeuk Hanse
2012-11-14 3:07 ` Jaegeuk Hanse
2012-11-14 3:50 ` Hugh Dickins
2012-11-14 3:50 ` Hugh Dickins
2012-11-14 6:14 ` Dave Jones
2012-11-14 6:14 ` Dave Jones
2012-11-14 10:06 ` Hugh Dickins
2012-11-14 10:06 ` Hugh Dickins
2012-11-15 7:39 ` Jaegeuk Hanse
2012-11-15 7:39 ` Jaegeuk Hanse
2012-11-15 19:56 ` Hugh Dickins
2012-11-15 19:56 ` Hugh Dickins
2012-11-16 0:40 ` Jaegeuk Hanse
2012-11-16 0:40 ` Jaegeuk Hanse
2012-11-16 9:34 ` Jaegeuk Hanse
2012-11-16 9:34 ` Jaegeuk Hanse
2012-11-17 4:48 ` Hugh Dickins
2012-11-17 4:48 ` Hugh Dickins
2012-11-18 0:57 ` Jaegeuk Hanse
2012-11-18 0:57 ` Jaegeuk Hanse
2012-11-18 1:48 ` Jaegeuk Hanse
2012-11-18 1:48 ` Jaegeuk Hanse
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=20121025111411.GB24886@redhat.com \
--to=davej@redhat.com \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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.