From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f66.google.com ([74.125.82.66]:35616 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751407AbcEMMyI (ORCPT ); Fri, 13 May 2016 08:54:08 -0400 Received: by mail-wm0-f66.google.com with SMTP id e201so3536483wme.2 for ; Fri, 13 May 2016 05:54:08 -0700 (PDT) Subject: Re: [backport v3.12 PATCH 1/3] mm: pass VM_BUG_ON() reason to dump_page() To: Gavin Guo , stable@vger.kernel.org References: <1462851799-17773-1-git-send-email-gavin.guo@canonical.com> <1462851799-17773-2-git-send-email-gavin.guo@canonical.com> Cc: Dave Hansen , Andrew Morton , Linus Torvalds From: Jiri Slaby Message-ID: <5735CE6D.800@suse.cz> Date: Fri, 13 May 2016 14:54:05 +0200 MIME-Version: 1.0 In-Reply-To: <1462851799-17773-2-git-send-email-gavin.guo@canonical.com> Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 05/10/2016, 05:43 AM, Gavin Guo wrote: > From: Dave Hansen > > commit e4f674229ce63dac60be0c4ddfb5ef8d1225d30d upstream > > I recently added a patch to let folks pass a "reason" string dump_page() > which gets dumped out along with the page's data. This essentially > saves the bug-reader a trip in to the source to figure out why we > BUG_ON()'d. > > The new VM_BUG_ON_PAGE() passes in NULL for "reason". It seems like we > might as well pass the BUG_ON() condition if we have it. This will > bloat kernels a bit with ~160 new strings, but this is all under a > debugging option anyway. > > page:ffffea0008560280 count:1 mapcount:0 mapping:(null) index:0x0 > page flags: 0xbfffc0000000001(locked) > page dumped because: VM_BUG_ON_PAGE(PageLocked(page)) > ------------[ cut here ]------------ > kernel BUG at /home/davehans/linux.git/mm/filemap.c:464! > invalid opcode: 0000 [#1] SMP > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0+ #251 > Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 > ... > > [akpm@linux-foundation.org: include stringify.h] > Signed-off-by: Dave Hansen > Acked-by: Kirill A. Shutemov > Acked-by: Davidlohr Bueso > Signed-off-by: Andrew Morton > Signed-off-by: Linus Torvalds > [fixes the conflict and includes the VM_BUG_ON_PAGE] > Signed-off-by: Gavin Guo > --- > include/linux/mmdebug.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h > index 580bd587d916..fa387ca7218c 100644 > --- a/include/linux/mmdebug.h > +++ b/include/linux/mmdebug.h > @@ -1,10 +1,19 @@ > #ifndef LINUX_MM_DEBUG_H > #define LINUX_MM_DEBUG_H 1 > > +#include > #ifdef CONFIG_DEBUG_VM > #define VM_BUG_ON(cond) BUG_ON(cond) > +#define VM_BUG_ON_PAGE(cond, page) \ > + do { \ > + if (unlikely(cond)) { \ > + dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ But dump_page in 3.12 accepts only one parameter. And this is not the commit which actually added VM_BUG_ON_PAGE. The one which did, included also dump_page prototype in this header. Instead, I would just change VM_BUG_ON_PAGE to VM_BUG_ON in the second patch. thanks, -- js suse labs