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/smp.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/smp.h')
-rw-r--r-- | xen/include/xen/smp.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h index 6d77c5d76b..f603e001e6 100644 --- a/xen/include/xen/smp.h +++ b/xen/include/xen/smp.h @@ -13,6 +13,8 @@ extern void smp_send_event_check_mask(const cpumask_t *mask); #define smp_send_event_check_cpu(cpu) \ smp_send_event_check_mask(cpumask_of(cpu)) +extern void smp_send_state_dump(unsigned int cpu); + /* * Prepare machine for booting other CPUs. */ |