From: Ingo Molnar <mingo@elte.hu>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mgorman@suse.de>,
Randy Dunlap <randy.dunlap@oracle.com>,
dave@linux.vnet.ibm.com, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, linux-mm@kvack.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [BUGFIX][PATCH][-rc3] Define a consolidated definition of node_start/end_pfn for build error in page_cgroup.c (Was Re: mmotm 2011-06-15-16-56 uploaded (mm/page_cgroup.c)
Date: Mon, 20 Jun 2011 18:38:25 +0200 [thread overview]
Message-ID: <20110620163825.GA10815@elte.hu> (raw)
In-Reply-To: <20110617094628.aecf5ee1.kamezawa.hiroyu@jp.fujitsu.com>
* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
> On Thu, 16 Jun 2011 11:35:59 +0100
> Mel Gorman <mgorman@suse.de> wrote:
>
> > A caller that does node_end_pfn(nid++) will get a nasty surprise
> > due to side-effects. I know architectures currently get this wrong
> > including x86_64 but we might as well fix it up now. The definition
> > in arch/x86/include/asm/mmzone_32.h is immune to side-effects and
> > might be a better choice despite the use of a temporary variable.
> >
>
> Ok, here is a fixed one. Thank you for comments/review.
> ==
> >From 507cc95c5ba2351bff16c5421255d1395a3b555b Mon Sep 17 00:00:00 2001
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Date: Thu, 16 Jun 2011 17:28:07 +0900
> Subject: [PATCH] Fix node_start/end_pfn() definition for mm/page_cgroup.c
>
> commit 21a3c96 uses node_start/end_pfn(nid) for detection start/end
> of nodes. But, it's not defined in linux/mmzone.h but defined in
> /arch/???/include/mmzone.h which is included only under
> CONFIG_NEED_MULTIPLE_NODES=y.
>
> Then, we see
> mm/page_cgroup.c: In function 'page_cgroup_init':
> mm/page_cgroup.c:308: error: implicit declaration of function 'node_start_pfn'
> mm/page_cgroup.c:309: error: implicit declaration of function 'node_end_pfn'
>
> So, fixiing page_cgroup.c is an idea...
s/fixing
>
> But node_start_pfn()/node_end_pfn() is a very generic macro and
> should be implemented in the same manner for all archs.
> (m32r has different implementation...)
>
> This patch removes definitions of node_start/end_pfn() in each archs
> and defines a unified one in linux/mmzone.h. It's not under
> CONFIG_NEED_MULTIPLE_NODES, now.
>
> A result of macro expansion is here (mm/page_cgroup.c)
>
> for !NUMA
> start_pfn = ((&contig_page_data)->node_start_pfn);
> end_pfn = ({ pg_data_t *__pgdat = (&contig_page_data); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});
>
> for NUMA (x86-64)
> start_pfn = ((node_data[nid])->node_start_pfn);
> end_pfn = ({ pg_data_t *__pgdat = (node_data[nid]); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});
>
>
> Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
> Reported-by: Ingo Molnar <mingo@elte.hu>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Your patch solved all the build failures on x86 and on a couple of
cross-builds as well i tried:
Tested-by: Ingo Molnar <mingo@elte.hu>
Thanks,
Ingo
WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@elte.hu>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mgorman@suse.de>,
Randy Dunlap <randy.dunlap@oracle.com>,
dave@linux.vnet.ibm.com, linux-kernel@vger.kernel.org,
akpm@linux-foundation.org, linux-mm@kvack.org,
linux-fsdevel@vger.kernel.org
Subject: Re: [BUGFIX][PATCH][-rc3] Define a consolidated definition of node_start/end_pfn for build error in page_cgroup.c (Was Re: mmotm 2011-06-15-16-56 uploaded (mm/page_cgroup.c)
Date: Mon, 20 Jun 2011 18:38:25 +0200 [thread overview]
Message-ID: <20110620163825.GA10815@elte.hu> (raw)
In-Reply-To: <20110617094628.aecf5ee1.kamezawa.hiroyu@jp.fujitsu.com>
* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
> On Thu, 16 Jun 2011 11:35:59 +0100
> Mel Gorman <mgorman@suse.de> wrote:
>
> > A caller that does node_end_pfn(nid++) will get a nasty surprise
> > due to side-effects. I know architectures currently get this wrong
> > including x86_64 but we might as well fix it up now. The definition
> > in arch/x86/include/asm/mmzone_32.h is immune to side-effects and
> > might be a better choice despite the use of a temporary variable.
> >
>
> Ok, here is a fixed one. Thank you for comments/review.
> ==
> >From 507cc95c5ba2351bff16c5421255d1395a3b555b Mon Sep 17 00:00:00 2001
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Date: Thu, 16 Jun 2011 17:28:07 +0900
> Subject: [PATCH] Fix node_start/end_pfn() definition for mm/page_cgroup.c
>
> commit 21a3c96 uses node_start/end_pfn(nid) for detection start/end
> of nodes. But, it's not defined in linux/mmzone.h but defined in
> /arch/???/include/mmzone.h which is included only under
> CONFIG_NEED_MULTIPLE_NODES=y.
>
> Then, we see
> mm/page_cgroup.c: In function 'page_cgroup_init':
> mm/page_cgroup.c:308: error: implicit declaration of function 'node_start_pfn'
> mm/page_cgroup.c:309: error: implicit declaration of function 'node_end_pfn'
>
> So, fixiing page_cgroup.c is an idea...
s/fixing
>
> But node_start_pfn()/node_end_pfn() is a very generic macro and
> should be implemented in the same manner for all archs.
> (m32r has different implementation...)
>
> This patch removes definitions of node_start/end_pfn() in each archs
> and defines a unified one in linux/mmzone.h. It's not under
> CONFIG_NEED_MULTIPLE_NODES, now.
>
> A result of macro expansion is here (mm/page_cgroup.c)
>
> for !NUMA
> start_pfn = ((&contig_page_data)->node_start_pfn);
> end_pfn = ({ pg_data_t *__pgdat = (&contig_page_data); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});
>
> for NUMA (x86-64)
> start_pfn = ((node_data[nid])->node_start_pfn);
> end_pfn = ({ pg_data_t *__pgdat = (node_data[nid]); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});
>
>
> Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
> Reported-by: Ingo Molnar <mingo@elte.hu>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Your patch solved all the build failures on x86 and on a couple of
cross-builds as well i tried:
Tested-by: Ingo Molnar <mingo@elte.hu>
Thanks,
Ingo
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-06-20 16:38 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-15 23:56 mmotm 2011-06-15-16-56 uploaded akpm
2011-06-15 23:56 ` akpm
2011-06-16 1:29 ` mmotm 2011-06-15-16-56 uploaded (UML build error) Randy Dunlap
2011-06-16 1:29 ` Randy Dunlap
2011-06-16 4:44 ` mmotm 2011-06-15-16-56 uploaded (mm/migrate) Randy Dunlap
2011-06-16 4:49 ` mmotm 2011-06-15-16-56 uploaded (mm/page_cgroup.c) Randy Dunlap
2011-06-16 5:48 ` KAMEZAWA Hiroyuki
2011-06-16 5:48 ` KAMEZAWA Hiroyuki
2011-06-16 8:28 ` KAMEZAWA Hiroyuki
2011-06-16 8:28 ` KAMEZAWA Hiroyuki
2011-06-16 8:28 ` KAMEZAWA Hiroyuki
2011-06-16 10:35 ` Mel Gorman
2011-06-16 10:35 ` Mel Gorman
2011-06-16 16:25 ` Dave Hansen
2011-06-16 16:25 ` Dave Hansen
2011-06-16 16:51 ` Mel Gorman
2011-06-16 16:51 ` Mel Gorman
2011-06-16 18:46 ` Dave Hansen
2011-06-16 18:46 ` Dave Hansen
2011-06-17 7:55 ` Mel Gorman
2011-06-17 7:55 ` Mel Gorman
2011-06-17 0:46 ` [BUGFIX][PATCH][-rc3] Define a consolidated definition of node_start/end_pfn for build error in page_cgroup.c (Was " KAMEZAWA Hiroyuki
2011-06-17 0:46 ` KAMEZAWA Hiroyuki
2011-06-17 0:46 ` KAMEZAWA Hiroyuki
2011-06-17 7:57 ` Mel Gorman
2011-06-17 7:57 ` Mel Gorman
2011-06-17 16:58 ` Randy Dunlap
2011-06-17 16:58 ` Randy Dunlap
2011-06-20 16:38 ` Ingo Molnar [this message]
2011-06-20 16:38 ` Ingo Molnar
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=20110620163825.GA10815@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=dave@linux.vnet.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=randy.dunlap@oracle.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.