Message ID | 506C0D45.3050909@jp.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Oct 3, 2012 at 6:02 AM, Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> wrote: > From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> > > add_memory() hot adds a physical memory. But remove_memory does not > hot remove a phsical memory. It only offlines memory. The name > confuse us. > > So the patch renames remove_memory() to offline_memory(). We will > use rename_memory() for hot removing memory. > > CC: David Rientjes <rientjes@google.com> > CC: Jiang Liu <liuj97@gmail.com> > CC: Len Brown <len.brown@intel.com> > CC: Christoph Lameter <cl@linux.com> > Cc: Minchan Kim <minchan.kim@gmail.com> > CC: Andrew Morton <akpm@linux-foundation.org> > CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> > Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> > --- > drivers/acpi/acpi_memhotplug.c | 2 +- > include/linux/memory_hotplug.h | 2 +- > mm/memory_hotplug.c | 6 +++--- > 3 files changed, 5 insertions(+), 5 deletions(-) Probably, the better way is to just remove remove_memory() and use offline_pages(). btw, current remove_memory() pfn calculation is just buggy. > int remove_memory(u64 start, u64 size) > { > unsigned long start_pfn, end_pfn; > > start_pfn = PFN_DOWN(start); > end_pfn = start_pfn + PFN_DOWN(size); It should be: start_pfn = PFN_DOWN(start); end_pfn = PFN_UP(start + size) or start_pfn = PFN_UP(start); end_pfn = PFN_DOWN(start + size) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
At 10/05/2012 05:31 AM, KOSAKI Motohiro Wrote: > On Wed, Oct 3, 2012 at 6:02 AM, Yasuaki Ishimatsu > <isimatu.yasuaki@jp.fujitsu.com> wrote: >> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> >> >> add_memory() hot adds a physical memory. But remove_memory does not >> hot remove a phsical memory. It only offlines memory. The name >> confuse us. >> >> So the patch renames remove_memory() to offline_memory(). We will >> use rename_memory() for hot removing memory. >> >> CC: David Rientjes <rientjes@google.com> >> CC: Jiang Liu <liuj97@gmail.com> >> CC: Len Brown <len.brown@intel.com> >> CC: Christoph Lameter <cl@linux.com> >> Cc: Minchan Kim <minchan.kim@gmail.com> >> CC: Andrew Morton <akpm@linux-foundation.org> >> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> >> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> >> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> >> --- >> drivers/acpi/acpi_memhotplug.c | 2 +- >> include/linux/memory_hotplug.h | 2 +- >> mm/memory_hotplug.c | 6 +++--- >> 3 files changed, 5 insertions(+), 5 deletions(-) > > Probably, the better way is to just remove remove_memory() and use > offline_pages(). we don't notify the userspace that the memory is offlined in offline_pages(). We reimplement offline_memory(), but ishimatsu doesn't include that patch to this series. Thanks Wen Congyang > > btw, current remove_memory() pfn calculation is just buggy. > > >> int remove_memory(u64 start, u64 size) >> { >> unsigned long start_pfn, end_pfn; >> >> start_pfn = PFN_DOWN(start); >> end_pfn = start_pfn + PFN_DOWN(size); > > It should be: > > start_pfn = PFN_DOWN(start); > end_pfn = PFN_UP(start + size) > > or > > start_pfn = PFN_UP(start); > end_pfn = PFN_DOWN(start + size) > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Oct 8, 2012 at 2:45 AM, Wen Congyang <wency@cn.fujitsu.com> wrote: > At 10/05/2012 05:31 AM, KOSAKI Motohiro Wrote: >> On Wed, Oct 3, 2012 at 6:02 AM, Yasuaki Ishimatsu >> <isimatu.yasuaki@jp.fujitsu.com> wrote: >>> From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> >>> >>> add_memory() hot adds a physical memory. But remove_memory does not >>> hot remove a phsical memory. It only offlines memory. The name >>> confuse us. >>> >>> So the patch renames remove_memory() to offline_memory(). We will >>> use rename_memory() for hot removing memory. >>> >>> CC: David Rientjes <rientjes@google.com> >>> CC: Jiang Liu <liuj97@gmail.com> >>> CC: Len Brown <len.brown@intel.com> >>> CC: Christoph Lameter <cl@linux.com> >>> Cc: Minchan Kim <minchan.kim@gmail.com> >>> CC: Andrew Morton <akpm@linux-foundation.org> >>> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> >>> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> >>> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> >>> --- >>> drivers/acpi/acpi_memhotplug.c | 2 +- >>> include/linux/memory_hotplug.h | 2 +- >>> mm/memory_hotplug.c | 6 +++--- >>> 3 files changed, 5 insertions(+), 5 deletions(-) >> >> Probably, the better way is to just remove remove_memory() and use >> offline_pages(). > > we don't notify the userspace that the memory is offlined in offline_pages(). > We reimplement offline_memory(), but ishimatsu doesn't include that patch to > this series. Quote from Documentation/SubmittingPatch > 3) Separate your changes. > Separate _logical changes_ into a single patch file. Please send us _logical_ meaningful patch set. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: linux-3.6/drivers/acpi/acpi_memhotplug.c =================================================================== --- linux-3.6.orig/drivers/acpi/acpi_memhotplug.c 2012-10-03 18:17:29.291244669 +0900 +++ linux-3.6/drivers/acpi/acpi_memhotplug.c 2012-10-03 18:17:41.494247869 +0900 @@ -316,7 +316,7 @@ acpi_memory_remove_memory(struct acpi_me if (!info->enabled) return -EBUSY; - result = remove_memory(info->start_addr, info->length); + result = offline_memory(info->start_addr, info->length); if (result) return result; Index: linux-3.6/include/linux/memory_hotplug.h =================================================================== --- linux-3.6.orig/include/linux/memory_hotplug.h 2012-10-03 18:17:01.863247694 +0900 +++ linux-3.6/include/linux/memory_hotplug.h 2012-10-03 18:17:41.496247872 +0900 @@ -236,7 +236,7 @@ extern int add_memory(int nid, u64 start extern int arch_add_memory(int nid, u64 start, u64 size); extern int offline_pages(unsigned long start_pfn, unsigned long nr_pages); extern int offline_memory_block(struct memory_block *mem); -extern int remove_memory(u64 start, u64 size); +extern int offline_memory(u64 start, u64 size); extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, int nr_pages); extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms); Index: linux-3.6/mm/memory_hotplug.c =================================================================== --- linux-3.6.orig/mm/memory_hotplug.c 2012-10-03 18:17:01.861247692 +0900 +++ linux-3.6/mm/memory_hotplug.c 2012-10-03 18:17:41.503247876 +0900 @@ -1003,7 +1003,7 @@ int offline_pages(unsigned long start_pf return __offline_pages(start_pfn, start_pfn + nr_pages, 120 * HZ); } -int remove_memory(u64 start, u64 size) +int offline_memory(u64 start, u64 size) { struct memory_block *mem = NULL; struct mem_section *section; @@ -1047,9 +1047,9 @@ int offline_pages(unsigned long start_pf { return -EINVAL; } -int remove_memory(u64 start, u64 size) +int offline_memory(u64 start, u64 size) { return -EINVAL; } #endif /* CONFIG_MEMORY_HOTREMOVE */ -EXPORT_SYMBOL_GPL(remove_memory); +EXPORT_SYMBOL_GPL(offline_memory);