All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Ralf Baechle <ralf@linux-mips.org>,
	aaditya.kumar.30@gmail.com, kamezawa.hiroyu@jp.fujitsu.com,
	linux-mm@kvack.org, Johannes Weiner <hannes@cmpxchg.org>,
	Tejun Heo <tj@kernel.org>
Subject: Re: + memory-hotplug-fix-kswapd-looping-forever-problem-fix-fix.patch added to -mm tree
Date: Thu, 19 Jul 2012 09:10:02 +0900	[thread overview]
Message-ID: <20120719001002.GA6579@bbox> (raw)
In-Reply-To: <20120718143810.b15564b3.akpm@linux-foundation.org>

On Wed, Jul 18, 2012 at 02:38:10PM -0700, Andrew Morton wrote:
> On Wed, 18 Jul 2012 10:22:00 +0900
> Minchan Kim <minchan@kernel.org> wrote:
> 
> > > 
> > > Is this really necessary?  Does the zone start out all-zeroes?  If not, can we
> > > make it do so?
> > 
> > Good point.
> > It can remove zap_zone_vm_stats and zone->flags = 0, too.
> > More important thing is that we could remove adding code to initialize
> > zero whenever we add new field to zone. So I look at the code.
> > 
> > In summary, IMHO, all is already initialie zero out but we need double
> > check in mips.
> > 
> 
> Well, this is hardly a performance-critical path.  So rather than
> groveling around ensuring that each and every architectures does the
> right thing, would it not be better to put a single memset() into core
> MM if there is an appropriate place?

I think most good place is free_area_init_node but at a glance,
bootmem_data is set up eariler than free_area_init_node so shouldn't we
keep that pointer still?

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 32985dd..1e7ca80 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4366,9 +4366,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
        int ret;
 
        pgdat_resize_init(pgdat);
-       pgdat->nr_zones = 0;
        init_waitqueue_head(&pgdat->kswapd_wait);
-       pgdat->kswapd_max_order = 0;
        pgdat_page_cgroup_init(pgdat);
 
        for (j = 0; j < MAX_NR_ZONES; j++) {
@@ -4429,11 +4427,6 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 
                zone_pcp_init(zone);
                lruvec_init(&zone->lruvec, zone);
-               zap_zone_vm_stats(zone);
-               zone->flags = 0;
-#ifdef CONFIG_MEMORY_ISOLATION
-               zone->nr_pageblock_isolate = 0;
-#endif
                if (!size)
                        continue;
 
@@ -4495,7 +4488,15 @@ void __paginginit free_area_init_node(int nid, unsigned long *zones_size,
                unsigned long node_start_pfn, unsigned long *zholes_size)
 {
        pg_data_t *pgdat = NODE_DATA(nid);
-
+       /* We guarantees pg_data_t starts out all-zeroes except bdata */
+#ifndef CONFIG_NO_BOOTMEM
+       struct bootmem_data *bdata;
+       bdata = pgdat->bdata;
+#endif
+       memset(pgdat, 0, sizeof(pg_data_t));
+#ifndef CONFIG_NO_BOOTMEM
+       pgdat->bdata = bdata;
+#endif
        pgdat->node_id = nid;
        pgdat->node_start_pfn = node_start_pfn;
        calculate_node_totalpages(pgdat, zones_size, zholes_size);

> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2012-07-19  0:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-17 22:44 + memory-hotplug-fix-kswapd-looping-forever-problem-fix-fix.patch added to -mm tree akpm
2012-07-18  1:22 ` Minchan Kim
2012-07-18 21:38   ` Andrew Morton
2012-07-19  0:10     ` Minchan Kim [this message]
2012-07-19  0:21       ` Tejun Heo
2012-07-19  0:48         ` Minchan Kim
2012-07-19 16:57           ` Tejun Heo
2012-07-19 23:50             ` Minchan Kim
2012-07-20 17:15               ` Tejun Heo
2012-07-20 21:22               ` Andrew Morton
2012-07-20 21:36                 ` Tejun Heo
2012-07-23  4:58                   ` Minchan Kim
2012-07-23 15:42                     ` Tejun Heo
2012-07-24  1:11                       ` Minchan Kim

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=20120719001002.GA6579@bbox \
    --to=minchan@kernel.org \
    --cc=aaditya.kumar.30@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-mm@kvack.org \
    --cc=ralf@linux-mips.org \
    --cc=tj@kernel.org \
    /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.