mm: print physical addresses consistently with other parts of kernel
Print physical address info in a style consistent with the %pR style used elsewhere in the kernel. For example: -Zone PFN ranges: +Zone ranges: - DMA32 0x00000010 -> 0x00100000 + DMA32 [mem 0x00010000-0xffffffff] - Normal 0x00100000 -> 0x01080000 + Normal [mem 0x100000000-0x107fffffff] Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
3af684c7c5
Коммит
a62e2f4f50
|
@ -74,8 +74,7 @@ static struct resource *register_memory_resource(u64 start, u64 size)
|
||||||
res->end = start + size - 1;
|
res->end = start + size - 1;
|
||||||
res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
|
res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
|
||||||
if (request_resource(&iomem_resource, res) < 0) {
|
if (request_resource(&iomem_resource, res) < 0) {
|
||||||
printk("System RAM resource %llx - %llx cannot be added\n",
|
printk("System RAM resource %pR cannot be added\n", res);
|
||||||
(unsigned long long)res->start, (unsigned long long)res->end);
|
|
||||||
kfree(res);
|
kfree(res);
|
||||||
res = NULL;
|
res = NULL;
|
||||||
}
|
}
|
||||||
|
@ -502,8 +501,10 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages)
|
||||||
online_pages_range);
|
online_pages_range);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
mutex_unlock(&zonelists_mutex);
|
mutex_unlock(&zonelists_mutex);
|
||||||
printk(KERN_DEBUG "online_pages %lx at %lx failed\n",
|
printk(KERN_DEBUG "online_pages [mem %#010llx-%#010llx] failed\n",
|
||||||
nr_pages, pfn);
|
(unsigned long long) pfn << PAGE_SHIFT,
|
||||||
|
(((unsigned long long) pfn + nr_pages)
|
||||||
|
<< PAGE_SHIFT) - 1);
|
||||||
memory_notify(MEM_CANCEL_ONLINE, &arg);
|
memory_notify(MEM_CANCEL_ONLINE, &arg);
|
||||||
unlock_memory_hotplug();
|
unlock_memory_hotplug();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -977,8 +978,9 @@ repeat:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
failed_removal:
|
failed_removal:
|
||||||
printk(KERN_INFO "memory offlining %lx to %lx failed\n",
|
printk(KERN_INFO "memory offlining [mem %#010llx-%#010llx] failed\n",
|
||||||
start_pfn, end_pfn);
|
(unsigned long long) start_pfn << PAGE_SHIFT,
|
||||||
|
((unsigned long long) end_pfn << PAGE_SHIFT) - 1);
|
||||||
memory_notify(MEM_CANCEL_OFFLINE, &arg);
|
memory_notify(MEM_CANCEL_OFFLINE, &arg);
|
||||||
/* pushback to free area */
|
/* pushback to free area */
|
||||||
undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
|
undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
|
||||||
|
|
|
@ -4815,7 +4815,7 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn)
|
||||||
find_zone_movable_pfns_for_nodes();
|
find_zone_movable_pfns_for_nodes();
|
||||||
|
|
||||||
/* Print out the zone ranges */
|
/* Print out the zone ranges */
|
||||||
printk("Zone PFN ranges:\n");
|
printk("Zone ranges:\n");
|
||||||
for (i = 0; i < MAX_NR_ZONES; i++) {
|
for (i = 0; i < MAX_NR_ZONES; i++) {
|
||||||
if (i == ZONE_MOVABLE)
|
if (i == ZONE_MOVABLE)
|
||||||
continue;
|
continue;
|
||||||
|
@ -4824,22 +4824,25 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn)
|
||||||
arch_zone_highest_possible_pfn[i])
|
arch_zone_highest_possible_pfn[i])
|
||||||
printk(KERN_CONT "empty\n");
|
printk(KERN_CONT "empty\n");
|
||||||
else
|
else
|
||||||
printk(KERN_CONT "%0#10lx -> %0#10lx\n",
|
printk(KERN_CONT "[mem %0#10lx-%0#10lx]\n",
|
||||||
arch_zone_lowest_possible_pfn[i],
|
arch_zone_lowest_possible_pfn[i] << PAGE_SHIFT,
|
||||||
arch_zone_highest_possible_pfn[i]);
|
(arch_zone_highest_possible_pfn[i]
|
||||||
|
<< PAGE_SHIFT) - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print out the PFNs ZONE_MOVABLE begins at in each node */
|
/* Print out the PFNs ZONE_MOVABLE begins at in each node */
|
||||||
printk("Movable zone start PFN for each node\n");
|
printk("Movable zone start for each node\n");
|
||||||
for (i = 0; i < MAX_NUMNODES; i++) {
|
for (i = 0; i < MAX_NUMNODES; i++) {
|
||||||
if (zone_movable_pfn[i])
|
if (zone_movable_pfn[i])
|
||||||
printk(" Node %d: %lu\n", i, zone_movable_pfn[i]);
|
printk(" Node %d: %#010lx\n", i,
|
||||||
|
zone_movable_pfn[i] << PAGE_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print out the early_node_map[] */
|
/* Print out the early_node_map[] */
|
||||||
printk("Early memory PFN ranges\n");
|
printk("Early memory node ranges\n");
|
||||||
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid)
|
for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid)
|
||||||
printk(" %3d: %0#10lx -> %0#10lx\n", nid, start_pfn, end_pfn);
|
printk(" node %3d: [mem %#010lx-%#010lx]\n", nid,
|
||||||
|
start_pfn << PAGE_SHIFT, (end_pfn << PAGE_SHIFT) - 1);
|
||||||
|
|
||||||
/* Initialise every node */
|
/* Initialise every node */
|
||||||
mminit_verify_pageflags_layout();
|
mminit_verify_pageflags_layout();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче