From: Minchan Kim <minchan@kernel.org>
To: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@suse.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: "mm: fix lazyfree BUG_ON check in try_to_unmap_one()" build error
Date: Thu, 9 Mar 2017 15:02:26 +0900 [thread overview]
Message-ID: <20170309060226.GB854@bbox> (raw)
In-Reply-To: <20170309042908.GA26702@jagdpanzerIV.localdomain>
Hi Sergey,
On Thu, Mar 09, 2017 at 01:29:08PM +0900, Sergey Senozhatsky wrote:
> Hello Minchan,
>
> /* I can't https://marc.info/?l=linux-kernel&m=148886631303107 thread
> in my mail box for some reason so the Reply-To message-id may be wrong. */
>
>
>
> commit "mm: fix lazyfree BUG_ON check in try_to_unmap_one()"
> (mmotm fd07630cbf59bead90046dd3e5cfd891e58e6987)
>
>
> if (VM_WARN_ON_ONCE(PageSwapBacked(page) !=
> PageSwapCache(page))) {
> ...
> }
>
>
> does not compile on !CONFIG_DEBUG_VM configs, because VM_WARN_ONCE() is
>
> #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
>
>
>
> In file included from ./include/linux/mmdebug.h:4:0,
> from ./include/linux/mm.h:8,
> from mm/rmap.c:48:
> mm/rmap.c: In function a??try_to_unmap_onea??:
> ./include/linux/bug.h:45:33: error: void value not ignored as it ought to be
> #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
> ^
> ./include/linux/mmdebug.h:49:31: note: in expansion of macro a??BUILD_BUG_ON_INVALIDa??
> #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond)
> ^~~~~~~~~~~~~~~~~~~~
> mm/rmap.c:1416:8: note: in expansion of macro a??VM_WARN_ON_ONCEa??
> if (VM_WARN_ON_ONCE(PageSwapBacked(page) !=
> ^~~~~~~~~~~~~~~
>
> -ss
>
Thanks for the report, Sergey!
If others are not against, I want to go this.
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@suse.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: "mm: fix lazyfree BUG_ON check in try_to_unmap_one()" build error
Date: Thu, 9 Mar 2017 15:02:26 +0900 [thread overview]
Message-ID: <20170309060226.GB854@bbox> (raw)
In-Reply-To: <20170309042908.GA26702@jagdpanzerIV.localdomain>
Hi Sergey,
On Thu, Mar 09, 2017 at 01:29:08PM +0900, Sergey Senozhatsky wrote:
> Hello Minchan,
>
> /* I can't https://marc.info/?l=linux-kernel&m=148886631303107 thread
> in my mail box for some reason so the Reply-To message-id may be wrong. */
>
>
>
> commit "mm: fix lazyfree BUG_ON check in try_to_unmap_one()"
> (mmotm fd07630cbf59bead90046dd3e5cfd891e58e6987)
>
>
> if (VM_WARN_ON_ONCE(PageSwapBacked(page) !=
> PageSwapCache(page))) {
> ...
> }
>
>
> does not compile on !CONFIG_DEBUG_VM configs, because VM_WARN_ONCE() is
>
> #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
>
>
>
> In file included from ./include/linux/mmdebug.h:4:0,
> from ./include/linux/mm.h:8,
> from mm/rmap.c:48:
> mm/rmap.c: In function ‘try_to_unmap_one’:
> ./include/linux/bug.h:45:33: error: void value not ignored as it ought to be
> #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
> ^
> ./include/linux/mmdebug.h:49:31: note: in expansion of macro ‘BUILD_BUG_ON_INVALID’
> #define VM_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond)
> ^~~~~~~~~~~~~~~~~~~~
> mm/rmap.c:1416:8: note: in expansion of macro ‘VM_WARN_ON_ONCE’
> if (VM_WARN_ON_ONCE(PageSwapBacked(page) !=
> ^~~~~~~~~~~~~~~
>
> -ss
>
Thanks for the report, Sergey!
If others are not against, I want to go this.
>From 38b10e560d066c2cef8f9d028e14008cefdaa3e0 Mon Sep 17 00:00:00 2001
From: Minchan Kim <minchan@kernel.org>
Date: Thu, 9 Mar 2017 14:58:23 +0900
Subject: [PATCH] mm: do not use VM_WARN_ON_ONCE as if condition
Sergey reported VM_WARN_ON_ONCE returns void with !CONFIG_DEBUG_VM
so we cannot use it as if's condition unlike WARN_ON.
This patch fixes it.
Signed-off-by: Minchan Kim <minchan@kernel.org>
---
mm/rmap.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mm/rmap.c b/mm/rmap.c
index 1d82057144ba..7d24bb93445b 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1413,12 +1413,11 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
* Store the swap location in the pte.
* See handle_pte_fault() ...
*/
- if (VM_WARN_ON_ONCE(PageSwapBacked(page) !=
- PageSwapCache(page))) {
+ if (unlikely(PageSwapBacked(page) != PageSwapCache(page))) {
+ WARN_ON_ONCE(1);
ret = SWAP_FAIL;
page_vma_mapped_walk_done(&pvmw);
break;
-
}
/* MADV_FREE page check */
--
2.7.4
next prev parent reply other threads:[~2017-03-09 6:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-09 4:29 "mm: fix lazyfree BUG_ON check in try_to_unmap_one()" build error Sergey Senozhatsky
2017-03-09 4:29 ` Sergey Senozhatsky
2017-03-09 6:02 ` Minchan Kim [this message]
2017-03-09 6:02 ` Minchan Kim
2017-03-09 8:50 ` Michal Hocko
2017-03-09 8:50 ` Michal Hocko
2017-03-09 21:27 ` Andrew Morton
2017-03-09 21:27 ` Andrew Morton
2017-03-10 0:45 ` Minchan Kim
2017-03-10 0:45 ` Minchan Kim
2017-03-10 9:31 ` Vlastimil Babka
2017-03-10 9:31 ` 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=20170309060226.GB854@bbox \
--to=minchan@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=sergey.senozhatsky@gmail.com \
/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.