virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Jiang Liu <liuj97@gmail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: xen-devel@lists.xensource.com,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	x86@kernel.org, Aurelien Jacquiot <a-jacquiot@ti.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	linux-snps-arc@vger.kernel.org,
	Tang Chen <tangchen@cn.fujitsu.com>,
	David Howells <dhowells@redhat.com>,
	Chen Liqin <liqin.chen@sunplusct.com>,
	Paul Mackerras <paulus@samba.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Guan Xuetao <gxt@mprc.pku.edu.cn>,
	Sam Ravnborg <sam@ravnborg.org>, Lennox Wu <lennox.wu@gmail.com>,
	Maciej Rutecki <maciej.rutecki@gmail.com>,
	Jonas Bonn <jonas@southpole.se>, Mark Salter <msalter@redhat.com>,
	Michel Lespinasse <walken@google.com>,
	Mikael Starvik <starvik@axis.com>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Helge Deller <deller@gmx.de>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>
Subject: Re: [PATCH v2, part1 01/29] mm: introduce common help functions to deal with reserved/managed pages
Date: Tue, 12 Mar 2013 06:17:43 +0800	[thread overview]
Message-ID: <513E5807.2060303@gmail.com> (raw)
In-Reply-To: <CAMuHMdXLEkKVfhPu-MfBE37SuHDoVtrEG92PZq2-nD3xw6GNQw@mail.gmail.com>

Hi Geert,
	Thanks for review!

On 03/10/2013 05:20 PM, Geert Uytterhoeven wrote:
> On Sun, Mar 10, 2013 at 7:26 AM, Jiang Liu <liuj97@gmail.com> wrote:
>> Code to deal with reserved/managed pages are duplicated by many
>> architectures, so introduce common help functions to reduce duplicated
>> code. These common help functions will also be used to concentrate code
>> to modify totalram_pages and zone->managed_pages, which makes the code
>> much more clear.
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> 
> I have a few minor comments (see below), but apart from that:
> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
> 
>> ---
>>  include/linux/mm.h |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
>>  mm/page_alloc.c    |   20 ++++++++++++++++++++
>>  2 files changed, 68 insertions(+)
>>
>> diff --git a/include/linux/mm.h b/include/linux/mm.h
>> index 7acc9dc..d75c14b 100644
>> --- a/include/linux/mm.h
>> +++ b/include/linux/mm.h
>> @@ -1295,6 +1295,54 @@ extern void free_area_init_node(int nid, unsigned long * zones_size,
>>                 unsigned long zone_start_pfn, unsigned long *zholes_size);
>>  extern void free_initmem(void);
>>
>> +/*
>> + * Free reserved pages within range [PAGE_ALIGN(start), end & PAGE_MASK)
>> + * into the buddy system. The freed pages will be poisoned with pattern
>> + * "poison" if it's non-zero.
> 
> What if you want to poison with zero?
> As poison is a full int, but memset only uses the least-significant
> byte, you can
> change it to poison if it's positive (i.e. >= 0)?
Good point, ARM64 does poison memory with 0. Will implement that way in next version.

> 
>> +/*
>> + * Default method to free all the __init memory into the buddy system.
>> + * The freed pages will be poisoned with pattern "poison" if it is
>> + * non-zero. Return pages freed into the buddy system.
>> + */
>> +static inline unsigned long free_initmem_default(int poison)
>> +{
>> +       extern char __init_begin[], __init_end[];
>> +
>> +       return free_reserved_area(PAGE_ALIGN((unsigned long)&__init_begin) ,
>> +                                 ((unsigned long)&__init_end) & PAGE_MASK,
> 
> The "PAGE_ALIGN(...)" and "& PAGE_MASK" are superfluous, as
> free_reserved_area() already does that.
Will remove the redundant ops next version.

> 
>> +                                 poison, "unused kernel");
>> +}
>> +
> 
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 8fcced7..0fadb09 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -5113,6 +5113,26 @@ early_param("movablecore", cmdline_parse_movablecore);
>>
>>  #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
>>
>> +unsigned long free_reserved_area(unsigned long start, unsigned long end,
>> +                                int poison, char *s)
>> +{
> 
>> +       if (pages && s)
>> +               pr_info("Freeing %s memory: %ldK (%lx - %lx)\n",
> 
> "%luKiB (0x%lx - 0x%lx)"?
Sure.

Regards!
Gerry

> 
>> +                       s, pages << (PAGE_SHIFT - 10), start, end);
>> +
>> +       return pages;
>> +}
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
> 

      parent reply	other threads:[~2013-03-11 22:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1362896833-21104-1-git-send-email-jiang.liu@huawei.com>
2013-03-10  6:26 ` [PATCH v2, part1 01/29] mm: introduce common help functions to deal with reserved/managed pages Jiang Liu
2013-03-10  9:20   ` Geert Uytterhoeven
     [not found]   ` <CAMuHMdXLEkKVfhPu-MfBE37SuHDoVtrEG92PZq2-nD3xw6GNQw@mail.gmail.com>
2013-03-11 22:17     ` Jiang Liu [this message]

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=513E5807.2060303@gmail.com \
    --to=liuj97@gmail.com \
    --cc=a-jacquiot@ti.com \
    --cc=catalin.marinas@arm.com \
    --cc=deller@gmx.de \
    --cc=dhowells@redhat.com \
    --cc=geert@linux-m68k.org \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jejb@parisc-linux.org \
    --cc=jeremy@goop.org \
    --cc=jonas@southpole.se \
    --cc=konrad.wilk@oracle.com \
    --cc=lennox.wu@gmail.com \
    --cc=linux-snps-arc@vger.kernel.org \
    --cc=liqin.chen@sunplusct.com \
    --cc=maciej.rutecki@gmail.com \
    --cc=msalter@redhat.com \
    --cc=paulus@samba.org \
    --cc=sam@ravnborg.org \
    --cc=starvik@axis.com \
    --cc=tangchen@cn.fujitsu.com \
    --cc=walken@google.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=ysato@users.sourceforge.jp \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).