diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-05-06 17:00:08 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-05-06 17:00:08 +0100 |
commit | 5b6e351436e6f94797f0a92a8a478f38644fdaf6 (patch) | |
tree | 84b718f87e6f289adf1fb1cc8419e81d22fe00e5 /xen/include/xen/lib.h | |
parent | 08bbf1f316350aafa28c4c47fa3ed40414d6ad36 (diff) | |
download | xen-5b6e351436e6f94797f0a92a8a478f38644fdaf6.tar.gz xen-5b6e351436e6f94797f0a92a8a478f38644fdaf6.tar.bz2 xen-5b6e351436e6f94797f0a92a8a478f38644fdaf6.zip |
Reduce 'd' debug key's global impact
On large systems, dumping state may cause time management to get
stalled for so long a period that it wouldn't recover. Therefore alter
the state dumping logic to alternatively block each CPU as it prints
rather than one CPU for a very long time (using the alternative key
handling toggle introduced with an earlier patch).
Further, instead of using on_selected_cpus(), which is unsafe when
the dumping happens from a hardware interrupt, introduce and use a
dedicated IPI sending function (which each architecture can implement
to its liking)
Finally, don't print useless data (e.g. the hypervisor context of the
interrupt that is used for triggering the printing, but isn't part of
the context that's actually interesting).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/xen/lib.h')
-rw-r--r-- | xen/include/xen/lib.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index bca0d65df0..45fc60f857 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -111,4 +111,7 @@ extern int tainted; extern char *print_tainted(char *str); extern void add_taint(unsigned); +struct cpu_user_regs; +void dump_execstate(struct cpu_user_regs *); + #endif /* __LIB_H__ */ |