lkml.org 
[lkml]   [2016]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 5/5] tile: query dynamic DEBUG_PAGEALLOC setting
    Date
    From: Joonsoo Kim <iamjoonsoo.kim@lge.com>

    We can disable debug_pagealloc processing even if the code is compiled
    with CONFIG_DEBUG_PAGEALLOC. This patch changes the code to query
    whether it is enabled or not in runtime.

    Acked-by: Chris Metcalf <cmetcalf@ezchip.com>
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    ---
    arch/tile/mm/init.c | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
    index d4e1fc4..a0582b7 100644
    --- a/arch/tile/mm/init.c
    +++ b/arch/tile/mm/init.c
    @@ -896,17 +896,15 @@ void __init pgtable_cache_init(void)
    panic("pgtable_cache_init(): Cannot create pgd cache");
    }

    -#ifdef CONFIG_DEBUG_PAGEALLOC
    -static long __write_once initfree;
    -#else
    static long __write_once initfree = 1;
    -#endif
    +static bool __write_once set_initfree_done;

    /* Select whether to free (1) or mark unusable (0) the __init pages. */
    static int __init set_initfree(char *str)
    {
    long val;
    if (kstrtol(str, 0, &val) == 0) {
    + set_initfree_done = true;
    initfree = val;
    pr_info("initfree: %s free init pages\n",
    initfree ? "will" : "won't");
    @@ -919,6 +917,11 @@ static void free_init_pages(char *what, unsigned long begin, unsigned long end)
    {
    unsigned long addr = (unsigned long) begin;

    + /* Prefer user request first */
    + if (!set_initfree_done) {
    + if (debug_pagealloc_enabled())
    + initfree = 0;
    + }
    if (kdata_huge && !initfree) {
    pr_warn("Warning: ignoring initfree=0: incompatible with kdata=huge\n");
    initfree = 1;
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-02-11 05:21    [W:6.175 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site