diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-08-30 15:00:21 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-08-30 15:00:21 +0100 |
commit | 75dabf614d9c2b0884352ae20861a807f09af022 (patch) | |
tree | b01d27f46b767565fb015bd2f242b28cf611a395 | |
parent | 0e0204500eb2bb9499ca6ff0a60ccf7e3612c917 (diff) | |
download | xen-75dabf614d9c2b0884352ae20861a807f09af022.tar.gz xen-75dabf614d9c2b0884352ae20861a807f09af022.tar.bz2 xen-75dabf614d9c2b0884352ae20861a807f09af022.zip |
Introduce xc_core_arch_gpfn_may_present() hook.
On ia64 trying to map a foreign domain page which isn't allocated
cause annoying warning message. xm dump-core results in too many
warnings. With this hook, ia64 dump-core can suprress warning.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
-rw-r--r-- | tools/libxc/xc_core.c | 8 | ||||
-rw-r--r-- | tools/libxc/xc_core.h | 6 | ||||
-rw-r--r-- | tools/libxc/xc_core_ia64.c | 4 | ||||
-rw-r--r-- | tools/libxc/xc_core_ia64.h | 1 | ||||
-rw-r--r-- | tools/libxc/xc_core_powerpc.c | 4 | ||||
-rw-r--r-- | tools/libxc/xc_core_powerpc.h | 1 | ||||
-rw-r--r-- | tools/libxc/xc_core_x86.c | 4 | ||||
-rw-r--r-- | tools/libxc/xc_core_x86.h | 1 |
8 files changed, 19 insertions, 10 deletions
diff --git a/tools/libxc/xc_core.c b/tools/libxc/xc_core.c index 9ddbfef418..b404730800 100644 --- a/tools/libxc/xc_core.c +++ b/tools/libxc/xc_core.c @@ -474,8 +474,9 @@ xc_domain_dumpcore_via_callback(int xc_handle, } /* obtain memory map */ - sts = xc_core_arch_memory_map_get(xc_handle, &info, live_shinfo, - &memory_map, &nr_memory_map); + sts = xc_core_arch_memory_map_get(xc_handle, &arch_ctxt, &info, + live_shinfo, &memory_map, + &nr_memory_map); if ( sts != 0 ) goto out; @@ -756,6 +757,9 @@ xc_domain_dumpcore_via_callback(int xc_handle, } else { + if ( !xc_core_arch_gpfn_may_present(&arch_ctxt, i) ) + continue; + gmfn = i; pfn_array[j] = i; } diff --git a/tools/libxc/xc_core.h b/tools/libxc/xc_core.h index 278be895dd..c15729e5af 100644 --- a/tools/libxc/xc_core.h +++ b/tools/libxc/xc_core.h @@ -133,8 +133,10 @@ struct xc_core_memory_map { }; typedef struct xc_core_memory_map xc_core_memory_map_t; int xc_core_arch_auto_translated_physmap(const xc_dominfo_t *info); -int xc_core_arch_memory_map_get(int xc_handle, xc_dominfo_t *info, - shared_info_t *live_shinfo, +struct xc_core_arch_context; +int xc_core_arch_memory_map_get(int xc_handle, + struct xc_core_arch_context *arch_ctxt, + xc_dominfo_t *info, shared_info_t *live_shinfo, xc_core_memory_map_t **mapp, unsigned int *nr_entries); int xc_core_arch_map_p2m(int xc_handle, xc_dominfo_t *info, diff --git a/tools/libxc/xc_core_ia64.c b/tools/libxc/xc_core_ia64.c index 89c1053886..e092d6f69f 100644 --- a/tools/libxc/xc_core_ia64.c +++ b/tools/libxc/xc_core_ia64.c @@ -158,8 +158,8 @@ memory_map_get_old(int xc_handle, xc_dominfo_t *info, } int -xc_core_arch_memory_map_get(int xc_handle, xc_dominfo_t *info, - shared_info_t *live_shinfo, +xc_core_arch_memory_map_get(int xc_handle, struct xc_core_arch_context *unused, + xc_dominfo_t *info, shared_info_t *live_shinfo, xc_core_memory_map_t **mapp, unsigned int *nr_entries) { diff --git a/tools/libxc/xc_core_ia64.h b/tools/libxc/xc_core_ia64.h index 6357dfa20e..03cd8e0182 100644 --- a/tools/libxc/xc_core_ia64.h +++ b/tools/libxc/xc_core_ia64.h @@ -46,6 +46,7 @@ xc_core_arch_context_get_shdr(struct xc_core_arch_context* arch_ctxt, int xc_core_arch_context_dump(struct xc_core_arch_context* arch_ctxt, void* args, dumpcore_rtn_t dump_rtn); +#define xc_core_arch_gpfn_may_present(arch_ctxt, i) (1) #endif /* XC_CORE_IA64_H */ diff --git a/tools/libxc/xc_core_powerpc.c b/tools/libxc/xc_core_powerpc.c index a29fdb83b3..dd8f26b371 100644 --- a/tools/libxc/xc_core_powerpc.c +++ b/tools/libxc/xc_core_powerpc.c @@ -43,8 +43,8 @@ xc_core_arch_map_p2m(int xc_handle, xc_dominfo_t *info, } int -xc_core_arch_memory_map_get(int xc_handle, xc_dominfo_t *info, - shared_info_t *live_shinfo, +xc_core_arch_memory_map_get(int xc_handle, struct xc_core_arch_context *unused, + xc_dominfo_t *info, shared_info_t *live_shinfo, xc_core_memory_map_t **mapp, unsigned int *nr_entries) { diff --git a/tools/libxc/xc_core_powerpc.h b/tools/libxc/xc_core_powerpc.h index ce8aaf17c5..2f39413c4d 100644 --- a/tools/libxc/xc_core_powerpc.h +++ b/tools/libxc/xc_core_powerpc.h @@ -33,6 +33,7 @@ struct xc_core_arch_context { #define xc_core_arch_context_get(arch_ctxt, ctxt, xc_handle, domid) \ (0) #define xc_core_arch_context_dump(arch_ctxt, args, dump_rtn) (0) +#define xc_core_arch_gpfn_may_present(arch_ctxt, i) (1) static inline int xc_core_arch_context_get_shdr(struct xc_core_arch_context *arch_ctxt, diff --git a/tools/libxc/xc_core_x86.c b/tools/libxc/xc_core_x86.c index 3932f8e96b..4aa825b87d 100644 --- a/tools/libxc/xc_core_x86.c +++ b/tools/libxc/xc_core_x86.c @@ -33,8 +33,8 @@ xc_core_arch_auto_translated_physmap(const xc_dominfo_t *info) } int -xc_core_arch_memory_map_get(int xc_handle, xc_dominfo_t *info, - shared_info_t *live_shinfo, +xc_core_arch_memory_map_get(int xc_handle, struct xc_core_arch_context *unused, + xc_dominfo_t *info, shared_info_t *live_shinfo, xc_core_memory_map_t **mapp, unsigned int *nr_entries) { diff --git a/tools/libxc/xc_core_x86.h b/tools/libxc/xc_core_x86.h index 53ca48493d..6e3490bb27 100644 --- a/tools/libxc/xc_core_x86.h +++ b/tools/libxc/xc_core_x86.h @@ -40,6 +40,7 @@ struct xc_core_arch_context { #define xc_core_arch_context_get(arch_ctxt, ctxt, xc_handle, domid) \ (0) #define xc_core_arch_context_dump(arch_ctxt, args, dump_rtn) (0) +#define xc_core_arch_gpfn_may_present(arch_ctxt, i) (1) static inline int xc_core_arch_context_get_shdr(struct xc_core_arch_context *arch_ctxt, |