1
linux/arch/powerpc
Bharat Bhushan 09000adb86 KVM: PPC: Fix issue clearing exit timing counters
Following dump is observed on host when clearing the exit timing counters

[root@p1021mds kvm]# echo -n 'c' > vm1200_vcpu0_timing
INFO: task echo:1276 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
echo          D 0ff5bf94     0  1276   1190 0x00000000
Call Trace:
[c2157e40] [c0007908] __switch_to+0x9c/0xc4
[c2157e50] [c040293c] schedule+0x1b4/0x3bc
[c2157e90] [c04032dc] __mutex_lock_slowpath+0x74/0xc0
[c2157ec0] [c00369e4] kvmppc_init_timing_stats+0x20/0xb8
[c2157ed0] [c0036b00] kvmppc_exit_timing_write+0x84/0x98
[c2157ef0] [c00b9f90] vfs_write+0xc0/0x16c
[c2157f10] [c00ba284] sys_write+0x4c/0x90
[c2157f40] [c000e320] ret_from_syscall+0x0/0x3c

        The vcpu->mutex is used by kvm_ioctl_* (KVM_RUN etc) and same was
used when clearing the stats (in kvmppc_init_timing_stats()). What happens
is that when the guest is idle then it held the vcpu->mutx. While the
exiting timing process waits for guest to release the vcpu->mutex and
a hang state is reached.

        Now using seprate lock for exit timing stats.

Signed-off-by: Bharat Bhushan <Bharat.Bhushan@freescale.com>
Acked-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-05-11 07:57:04 -04:00
..
boot powerpc/85xx: Update dts for PCIe memory maps to match u-boot of Px020RDB 2011-04-04 09:30:40 -05:00
configs powerpc/pseries: Enable Chelsio network and iWARP drivers 2011-03-30 10:44:22 +11:00
include/asm KVM: PPC: Fix issue clearing exit timing counters 2011-05-11 07:57:04 -04:00
kernel hw_breakpoints, powerpc: Fix CONFIG_HAVE_HW_BREAKPOINT off-case in ptrace_set_debugreg() 2011-05-06 11:24:46 +02:00
kvm KVM: PPC: Fix issue clearing exit timing counters 2011-05-11 07:57:04 -04:00
lib powerpc: Ensure the else case of feature sections will fit 2011-01-21 14:08:33 +11:00
math-emu powerpc/85xx: Fix SPE float to integer conversion failure 2011-03-15 13:48:15 -05:00
mm Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
oprofile Fix common misspellings 2011-03-31 11:26:23 -03:00
platforms powerpc/powermac: Build fix with SMP and CPU hotplug 2011-04-18 15:46:35 +10:00
sysdev Merge remote branch 'kumar/merge' into merge 2011-04-18 12:09:37 +10:00
xmon lib, arch: add filter argument to show_mem and fix private implementations 2011-03-24 17:49:37 -07:00
Kconfig powerpc/85xx: disable Suspend support if SMP enabled 2011-04-12 06:29:21 -05:00
Kconfig.debug
Makefile powerpc: Fix typo in uImage target 2010-08-24 15:26:32 +10:00
relocs_check.pl