From 329b7bed80032fd52904af6a0cac7dd3716d27cf Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Tue, 25 Jan 2022 11:46:36 +0100 Subject: [PATCH] x86/pvh: print dom0 memory map MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit I find it useful for debugging certain issues to have the memory map dom0 is using, so print it when using `dom0=verbose` on the command line. Signed-off-by: Roger Pau Monné Reviewed-by: Jan Beulich --- xen/arch/x86/e820.c | 3 ++- xen/arch/x86/hvm/dom0_build.c | 6 ++++++ xen/arch/x86/include/asm/e820.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c index aa602773bb..b653a19c93 100644 --- a/xen/arch/x86/e820.c +++ b/xen/arch/x86/e820.c @@ -88,7 +88,8 @@ static void __init add_memory_region(unsigned long long start, e820.nr_map++; } -static void __init print_e820_memory_map(struct e820entry *map, unsigned int entries) +void __init print_e820_memory_map(const struct e820entry *map, + unsigned int entries) { unsigned int i; diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 8048987286..afba6e7dfd 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -1269,6 +1269,12 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image, return rc; } + if ( opt_dom0_verbose ) + { + printk("Dom%u memory map:\n", d->domain_id); + print_e820_memory_map(d->arch.e820, d->arch.nr_e820); + } + printk("WARNING: PVH is an experimental mode with limited functionality\n"); return 0; } diff --git a/xen/arch/x86/include/asm/e820.h b/xen/arch/x86/include/asm/e820.h index 9d8f1ba960..92f5efa4f5 100644 --- a/xen/arch/x86/include/asm/e820.h +++ b/xen/arch/x86/include/asm/e820.h @@ -32,6 +32,8 @@ extern int e820_change_range_type( extern int e820_add_range( struct e820map *, uint64_t s, uint64_t e, uint32_t type); extern unsigned long init_e820(const char *, struct e820map *); +extern void print_e820_memory_map(const struct e820entry *map, + unsigned int entries); extern struct e820map e820; extern struct e820map e820_raw; -- 2.30.2