lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Wed, 24 Oct 2012 14:55:25 +0800
From:	Wen Congyang <wency@...fujitsu.com>
To:	akpm@...ux-foundation.org
CC:	mm-commits@...r.kernel.org, benh@...nel.crashing.org, cl@...ux.com,
	dave@...ux.vnet.ibm.com, isimatu.yasuaki@...fujitsu.com,
	kosaki.motohiro@...fujitsu.com, len.brown@...el.com,
	liuj97@...il.com, mel@....ul.ie, minchan.kim@...il.com,
	paulus@...ba.org, rientjes@...gle.com,
	lkml <linux-kernel@...r.kernel.org>, linux-mm@...ck.org
Subject: Re: + memory-hotplug-allocate-zones-pcp-before-onlining-pages.patch
 added to -mm tree

Hi, Andrew Morton

At 10/19/2012 06:31 AM, akpm@...ux-foundation.org Wrote:
> The patch titled
>      Subject: memory-hotplug: allocate zone's pcp before onlining pages
> has been added to the -mm tree.  Its filename is
>      memory-hotplug-allocate-zones-pcp-before-onlining-pages.patch

I find a problem introduced by this patch, and the following is the fix:
Do I need to merge them into a single patch?

>>From 705b8f7392adba8a36d8e89b5aef77d9a6a9042c Mon Sep 17 00:00:00 2001
From: Wen Congyang <wency@...fujitsu.com>
Date: Wed, 24 Oct 2012 14:21:15 +0800
Subject: [PATCH] memory-hotplug: build zonelist if a zone is populated after onlining pages

After "memory-hotplug: allocate zone's pcp before onlining pages", we
build zone list before onlining pages to allocate zone's pcp. But the
zone doesn't have pages before onlining pages, and the zone is not in
zonelist, so we still need to build zonelist after onlining pages.

CC: David Rientjes <rientjes@...gle.com>
CC: Jiang Liu <liuj97@...il.com>
CC: Len Brown <len.brown@...el.com>
CC: Benjamin Herrenschmidt <benh@...nel.crashing.org>
CC: Paul Mackerras <paulus@...ba.org>
CC: Christoph Lameter <cl@...ux.com>
Cc: Minchan Kim <minchan.kim@...il.com>
CC: Andrew Morton <akpm@...ux-foundation.org>
CC: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
CC: Yasuaki Ishimatsu <isimatu.yasuaki@...fujitsu.com>
Signed-off-by: Wen Congyang <wency@...fujitsu.com>
---
 mm/memory_hotplug.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 3656926..b82bccf 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -529,7 +529,9 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages)
 	zone->zone_pgdat->node_present_pages += onlined_pages;
 	if (onlined_pages) {
 		node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
-		if (!need_zonelists_rebuild)
+		if (need_zonelists_rebuild)
+			build_all_zonelists(NULL, NULL);
+		else
 			zone_pcp_update(zone);
 	}
 
-- 
1.7.1


> 
> Before you just go and hit "reply", please:
>    a) Consider who else should be cc'ed
>    b) Prefer to cc a suitable mailing list as well
>    c) Ideally: find the original patch on the mailing list and do a
>       reply-to-all to that, adding suitable additional cc's
> 
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
> 
> The -mm tree is included into linux-next and is updated
> there every 3-4 working days
> 
> ------------------------------------------------------
> From: Wen Congyang <wency@...fujitsu.com>
> Subject: memory-hotplug: allocate zone's pcp before onlining pages
> 
> We use __free_page() to put a page to buddy system when onlining pages. 
> __free_page() will store NR_FREE_PAGES in zone's pcp.vm_stat_diff, so we
> should allocate zone's pcp before onlining pages, otherwise we will lose
> some free pages.
> 
> Signed-off-by: Wen Congyang <wency@...fujitsu.com>
> Cc: David Rientjes <rientjes@...gle.com>
> Cc: Jiang Liu <liuj97@...il.com>
> Cc: Len Brown <len.brown@...el.com>
> Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>
> Cc: Paul Mackerras <paulus@...ba.org>
> Cc: Christoph Lameter <cl@...ux.com>
> Cc: Minchan Kim <minchan.kim@...il.com>
> Cc: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@...fujitsu.com>
> Cc: Dave Hansen <dave@...ux.vnet.ibm.com>
> Cc: Mel Gorman <mel@....ul.ie>
> Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
> ---
> 
>  mm/memory_hotplug.c |   10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff -puN mm/memory_hotplug.c~memory-hotplug-allocate-zones-pcp-before-onlining-pages mm/memory_hotplug.c
> --- a/mm/memory_hotplug.c~memory-hotplug-allocate-zones-pcp-before-onlining-pages
> +++ a/mm/memory_hotplug.c
> @@ -505,12 +505,16 @@ int __ref online_pages(unsigned long pfn
>  	 * So, zonelist must be updated after online.
>  	 */
>  	mutex_lock(&zonelists_mutex);
> -	if (!populated_zone(zone))
> +	if (!populated_zone(zone)) {
>  		need_zonelists_rebuild = 1;
> +		build_all_zonelists(NULL, zone);
> +	}
>  
>  	ret = walk_system_ram_range(pfn, nr_pages, &onlined_pages,
>  		online_pages_range);
>  	if (ret) {
> +		if (need_zonelists_rebuild)
> +			zone_pcp_reset(zone);
>  		mutex_unlock(&zonelists_mutex);
>  		printk(KERN_DEBUG "online_pages [mem %#010llx-%#010llx] failed\n",
>  		       (unsigned long long) pfn << PAGE_SHIFT,
> @@ -525,9 +529,7 @@ int __ref online_pages(unsigned long pfn
>  	zone->zone_pgdat->node_present_pages += onlined_pages;
>  	if (onlined_pages) {
>  		node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
> -		if (need_zonelists_rebuild)
> -			build_all_zonelists(NULL, zone);
> -		else
> +		if (!need_zonelists_rebuild)
>  			zone_pcp_update(zone);
>  	}
>  
> _
> 
> Patches currently in -mm which might be from wency@...fujitsu.com are
> 
> cpu_hotplug-unmap-cpu2node-when-the-cpu-is-hotremoved.patch
> cpu_hotplug-unmap-cpu2node-when-the-cpu-is-hotremoved-fix.patch
> acpi_memhotplugc-fix-memory-leak-when-memory-device-is-unbound-from-the-module-acpi_memhotplug.patch
> acpi_memhotplugc-free-memory-device-if-acpi_memory_enable_device-failed.patch
> acpi_memhotplugc-remove-memory-info-from-list-before-freeing-it.patch
> acpi_memhotplugc-dont-allow-to-eject-the-memory-device-if-it-is-being-used.patch
> acpi_memhotplugc-bind-the-memory-device-when-the-driver-is-being-loaded.patch
> acpi_memhotplugc-auto-bind-the-memory-device-which-is-hotplugged-before-the-driver-is-loaded.patch
> x86-numa-dont-check-if-node-is-numa_no_node.patch
> memory-hotplug-suppress-device-memoryx-does-not-have-a-release-function-warning.patch
> memory-hotplug-suppress-device-nodex-does-not-have-a-release-function-warning.patch
> memory-hotplug-skip-hwpoisoned-page-when-offlining-pages.patch
> memory-hotplug-update-mce_bad_pages-when-removing-the-memory.patch
> memory-hotplug-update-mce_bad_pages-when-removing-the-memory-fix.patch
> memory-hotplug-auto-offline-page_cgroup-when-onlining-memory-block-failed.patch
> memory-hotplug-fix-nr_free_pages-mismatch.patch
> memory-hotplug-allocate-zones-pcp-before-onlining-pages.patch
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ