[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160830155919.GA482@swordfish>
Date: Wed, 31 Aug 2016 00:59:19 +0900
From: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
To: Aaron Lu <aaron.lu@...el.com>
Cc: Linux Memory Management List <linux-mm@...ck.org>,
"'Kirill A. Shutemov'" <kirill.shutemov@...ux.intel.com>,
Dave Hansen <dave.hansen@...el.com>,
Tim Chen <tim.c.chen@...ux.intel.com>,
Huang Ying <ying.huang@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Vlastimil Babka <vbabka@...e.cz>,
Jerome Marchand <jmarchan@...hat.com>,
Andrea Arcangeli <aarcange@...hat.com>,
Mel Gorman <mgorman@...hsingularity.net>,
Ebru Akagunduz <ebru.akagunduz@...il.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] thp: reduce usage of huge zero page's atomic counter
On (08/29/16 14:31), Aaron Lu wrote:
>
> The global zero page is used to satisfy an anonymous read fault. If
> THP(Transparent HugePage) is enabled then the global huge zero page is used.
> The global huge zero page uses an atomic counter for reference counting
> and is allocated/freed dynamically according to its counter value.
>
Hello,
for !CONFIG_TRANSPARENT_HUGEPAGE configs mm_put_huge_zero_page() is BUILD_BUG(),
which gives the following build error (mmots v4.8-rc4-mmots-2016-08-29-16-56)
CC kernel/fork.o
In file included from ./include/asm-generic/bug.h:4:0,
from ./arch/x86/include/asm/bug.h:35,
from ./include/linux/bug.h:4,
from ./include/linux/mmdebug.h:4,
from ./include/linux/gfp.h:4,
from ./include/linux/slab.h:14,
from kernel/fork.c:14:
In function ‘mm_put_huge_zero_page’,
inlined from ‘__mmput’ at kernel/fork.c:777:2,
inlined from ‘mmput_async_fn’ at kernel/fork.c:806:2:
./include/linux/compiler.h:495:38: error: call to ‘__compiletime_assert_218’ declared with attribute error: BUILD_BUG failed
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
./include/linux/compiler.h:478:4: note: in definition of macro ‘__compiletime_assert’
prefix ## suffix(); \
^~~~~~
./include/linux/compiler.h:495:2: note: in expansion of macro ‘_compiletime_assert’
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
./include/linux/bug.h:51:37: note: in expansion of macro ‘compiletime_assert’
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
./include/linux/bug.h:85:21: note: in expansion of macro ‘BUILD_BUG_ON_MSG’
#define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
^~~~~~~~~~~~~~~~
./include/linux/huge_mm.h:218:2: note: in expansion of macro ‘BUILD_BUG’
BUILD_BUG();
^~~~~~~~~
In function ‘mm_put_huge_zero_page’,
inlined from ‘__mmput’ at kernel/fork.c:777:2,
inlined from ‘mmput’ at kernel/fork.c:798:3:
./include/linux/compiler.h:495:38: error: call to ‘__compiletime_assert_218’ declared with attribute error: BUILD_BUG failed
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
./include/linux/compiler.h:478:4: note: in definition of macro ‘__compiletime_assert’
prefix ## suffix(); \
^~~~~~
./include/linux/compiler.h:495:2: note: in expansion of macro ‘_compiletime_assert’
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
./include/linux/bug.h:51:37: note: in expansion of macro ‘compiletime_assert’
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
./include/linux/bug.h:85:21: note: in expansion of macro ‘BUILD_BUG_ON_MSG’
#define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
^~~~~~~~~~~~~~~~
./include/linux/huge_mm.h:218:2: note: in expansion of macro ‘BUILD_BUG’
BUILD_BUG();
^~~~~~~~~
make[1]: *** [scripts/Makefile.build:291: kernel/fork.o] Error 1
make: *** [Makefile:968: kernel] Error 2
-ss
Powered by blists - more mailing lists