All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Issue in exit timing clearance
@ 2011-03-14  6:36 Bharat Bhushan
  2011-03-14  6:57 ` Bharat Bhushan
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Bharat Bhushan @ 2011-03-14  6:36 UTC (permalink / raw)
  To: kvm-ppc

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>
---
 arch/powerpc/include/asm/kvm_host.h |    1 +
 arch/powerpc/kvm/powerpc.c          |    4 ++++
 arch/powerpc/kvm/timing.c           |   10 +++++++---
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index bba3b9b..890897c 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -255,6 +255,7 @@ struct kvm_vcpu_arch {
 	u32 dbsr;
 
 #ifdef CONFIG_KVM_EXIT_TIMING
+	struct mutex exit_timing_lock;
 	struct kvmppc_exit_timing timing_exit;
 	struct kvmppc_exit_timing timing_last_enter;
 	u32 last_exit_type;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 9975846..ec3d2e7 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -284,6 +284,10 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
 	tasklet_init(&vcpu->arch.tasklet, kvmppc_decrementer_func, (ulong)vcpu);
 	vcpu->arch.dec_timer.function = kvmppc_decrementer_wakeup;
 
+#ifdef CONFIG_KVM_EXIT_TIMING
+	mutex_init(&vcpu->arch.exit_timing_lock);
+#endif
+
 	return 0;
 }
 
diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c
index a021f58..18f40fd 100644
--- a/arch/powerpc/kvm/timing.c
+++ b/arch/powerpc/kvm/timing.c
@@ -34,8 +34,8 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 {
 	int i;
 
-	/* pause guest execution to avoid concurrent updates */
-	mutex_lock(&vcpu->mutex);
+	/* Take a lock to avoid concurrent updates */
+	mutex_lock(&vcpu->arch.exit_timing_lock);
 
 	vcpu->arch.last_exit_type = 0xDEAD;
 	for (i = 0; i < __NUMBER_OF_KVM_EXIT_TYPES; i++) {
@@ -49,7 +49,7 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 	vcpu->arch.timing_exit.tv64 = 0;
 	vcpu->arch.timing_last_enter.tv64 = 0;
 
-	mutex_unlock(&vcpu->mutex);
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
@@ -65,6 +65,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		return;
 	}
 
+	mutex_lock(&vcpu->arch.exit_timing_lock);
+
 	vcpu->arch.timing_count_type[type]++;
 
 	/* sum */
@@ -93,6 +95,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		vcpu->arch.timing_min_duration[type] = duration;
 	if (unlikely(duration > vcpu->arch.timing_max_duration[type]))
 		vcpu->arch.timing_max_duration[type] = duration;
+
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu)
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] Issue in exit timing clearance
  2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
@ 2011-03-14  6:57 ` Bharat Bhushan
  2011-03-15  5:41 ` Bharat Bhushan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Bharat Bhushan @ 2011-03-14  6:57 UTC (permalink / raw)
  To: kvm-ppc

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>
---
 arch/powerpc/include/asm/kvm_host.h |    1 +
 arch/powerpc/kvm/powerpc.c          |    4 ++++
 arch/powerpc/kvm/timing.c           |   10 +++++++---
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index bba3b9b..890897c 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -255,6 +255,7 @@ struct kvm_vcpu_arch {
 	u32 dbsr;
 
 #ifdef CONFIG_KVM_EXIT_TIMING
+	struct mutex exit_timing_lock;
 	struct kvmppc_exit_timing timing_exit;
 	struct kvmppc_exit_timing timing_last_enter;
 	u32 last_exit_type;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 9975846..ec3d2e7 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -284,6 +284,10 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
 	tasklet_init(&vcpu->arch.tasklet, kvmppc_decrementer_func, (ulong)vcpu);
 	vcpu->arch.dec_timer.function = kvmppc_decrementer_wakeup;
 
+#ifdef CONFIG_KVM_EXIT_TIMING
+	mutex_init(&vcpu->arch.exit_timing_lock);
+#endif
+
 	return 0;
 }
 
diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c
index a021f58..18f40fd 100644
--- a/arch/powerpc/kvm/timing.c
+++ b/arch/powerpc/kvm/timing.c
@@ -34,8 +34,8 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 {
 	int i;
 
-	/* pause guest execution to avoid concurrent updates */
-	mutex_lock(&vcpu->mutex);
+	/* Take a lock to avoid concurrent updates */
+	mutex_lock(&vcpu->arch.exit_timing_lock);
 
 	vcpu->arch.last_exit_type = 0xDEAD;
 	for (i = 0; i < __NUMBER_OF_KVM_EXIT_TYPES; i++) {
@@ -49,7 +49,7 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 	vcpu->arch.timing_exit.tv64 = 0;
 	vcpu->arch.timing_last_enter.tv64 = 0;
 
-	mutex_unlock(&vcpu->mutex);
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
@@ -65,6 +65,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		return;
 	}
 
+	mutex_lock(&vcpu->arch.exit_timing_lock);
+
 	vcpu->arch.timing_count_type[type]++;
 
 	/* sum */
@@ -93,6 +95,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		vcpu->arch.timing_min_duration[type] = duration;
 	if (unlikely(duration > vcpu->arch.timing_max_duration[type]))
 		vcpu->arch.timing_max_duration[type] = duration;
+
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu)
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] Issue in exit timing clearance
  2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
  2011-03-14  6:57 ` Bharat Bhushan
@ 2011-03-15  5:41 ` Bharat Bhushan
  2011-03-15 14:41 ` Alexander Graf
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Bharat Bhushan @ 2011-03-15  5:41 UTC (permalink / raw)
  To: kvm-ppc

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>
---
 arch/powerpc/include/asm/kvm_host.h |    1 +
 arch/powerpc/kvm/powerpc.c          |    4 ++++
 arch/powerpc/kvm/timing.c           |   10 +++++++---
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index bba3b9b..890897c 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -255,6 +255,7 @@ struct kvm_vcpu_arch {
 	u32 dbsr;
 
 #ifdef CONFIG_KVM_EXIT_TIMING
+	struct mutex exit_timing_lock;
 	struct kvmppc_exit_timing timing_exit;
 	struct kvmppc_exit_timing timing_last_enter;
 	u32 last_exit_type;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 9975846..ec3d2e7 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -284,6 +284,10 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
 	tasklet_init(&vcpu->arch.tasklet, kvmppc_decrementer_func, (ulong)vcpu);
 	vcpu->arch.dec_timer.function = kvmppc_decrementer_wakeup;
 
+#ifdef CONFIG_KVM_EXIT_TIMING
+	mutex_init(&vcpu->arch.exit_timing_lock);
+#endif
+
 	return 0;
 }
 
diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c
index a021f58..18f40fd 100644
--- a/arch/powerpc/kvm/timing.c
+++ b/arch/powerpc/kvm/timing.c
@@ -34,8 +34,8 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 {
 	int i;
 
-	/* pause guest execution to avoid concurrent updates */
-	mutex_lock(&vcpu->mutex);
+	/* Take a lock to avoid concurrent updates */
+	mutex_lock(&vcpu->arch.exit_timing_lock);
 
 	vcpu->arch.last_exit_type = 0xDEAD;
 	for (i = 0; i < __NUMBER_OF_KVM_EXIT_TYPES; i++) {
@@ -49,7 +49,7 @@ void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
 	vcpu->arch.timing_exit.tv64 = 0;
 	vcpu->arch.timing_last_enter.tv64 = 0;
 
-	mutex_unlock(&vcpu->mutex);
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
@@ -65,6 +65,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		return;
 	}
 
+	mutex_lock(&vcpu->arch.exit_timing_lock);
+
 	vcpu->arch.timing_count_type[type]++;
 
 	/* sum */
@@ -93,6 +95,8 @@ static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
 		vcpu->arch.timing_min_duration[type] = duration;
 	if (unlikely(duration > vcpu->arch.timing_max_duration[type]))
 		vcpu->arch.timing_max_duration[type] = duration;
+
+	mutex_unlock(&vcpu->arch.exit_timing_lock);
 }
 
 void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu)
-- 
1.7.0.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] Issue in exit timing clearance
  2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
  2011-03-14  6:57 ` Bharat Bhushan
  2011-03-15  5:41 ` Bharat Bhushan
@ 2011-03-15 14:41 ` Alexander Graf
  2011-03-16  3:08 ` Bhushan Bharat-R65777
  2011-03-16 14:14 ` Alexander Graf
  4 siblings, 0 replies; 6+ messages in thread
From: Alexander Graf @ 2011-03-15 14:41 UTC (permalink / raw)
  To: kvm-ppc


On 15.03.2011, at 06:29, Bharat Bhushan wrote:

> 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>

Looks good from a 10000 feet perspective. My BookE box is currently down, so I can't test it, but I assume you have verified it works just fine?
If so, please CC kvm@vger.kernel.org, so Avi can take it in the tree with my signed-off (after I tested it ;)).


Alex


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH] Issue in exit timing clearance
  2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
                   ` (2 preceding siblings ...)
  2011-03-15 14:41 ` Alexander Graf
@ 2011-03-16  3:08 ` Bhushan Bharat-R65777
  2011-03-16 14:14 ` Alexander Graf
  4 siblings, 0 replies; 6+ messages in thread
From: Bhushan Bharat-R65777 @ 2011-03-16  3:08 UTC (permalink / raw)
  To: kvm-ppc



> -----Original Message-----
> From: Alexander Graf [mailto:agraf@suse.de]
> Sent: Tuesday, March 15, 2011 8:11 PM
> To: Bhushan Bharat-R65777
> Cc: kvm-ppc@vger.kernel.org; bharatb.yadav@gmail.com; Bhushan Bharat-
> R65777
> Subject: Re: [PATCH] Issue in exit timing clearance
> 
> 
> On 15.03.2011, at 06:29, Bharat Bhushan wrote:
> 
> > 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>
> 
> Looks good from a 10000 feet perspective. My BookE box is currently down,
> so I can't test it, but I assume you have verified it works just fine?
> If so, please CC kvm@vger.kernel.org, so Avi can take it in the tree with
> my signed-off (after I tested it ;)).
> 

Hi Alex,

I have tested this and works fine for me. 
Please let me know when you complete your testing so that I send to kvm@vger.kernel.org.

Thanks
-Bharat


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Issue in exit timing clearance
  2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
                   ` (3 preceding siblings ...)
  2011-03-16  3:08 ` Bhushan Bharat-R65777
@ 2011-03-16 14:14 ` Alexander Graf
  4 siblings, 0 replies; 6+ messages in thread
From: Alexander Graf @ 2011-03-16 14:14 UTC (permalink / raw)
  To: kvm-ppc

On 03/16/2011 04:08 AM, Bhushan Bharat-R65777 wrote:
>
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf@suse.de]
>> Sent: Tuesday, March 15, 2011 8:11 PM
>> To: Bhushan Bharat-R65777
>> Cc: kvm-ppc@vger.kernel.org; bharatb.yadav@gmail.com; Bhushan Bharat-
>> R65777
>> Subject: Re: [PATCH] Issue in exit timing clearance
>>
>>
>> On 15.03.2011, at 06:29, Bharat Bhushan wrote:
>>
>>> 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>
>> Looks good from a 10000 feet perspective. My BookE box is currently down,
>> so I can't test it, but I assume you have verified it works just fine?
>> If so, please CC kvm@vger.kernel.org, so Avi can take it in the tree with
>> my signed-off (after I tested it ;)).
>>
> Hi Alex,
>
> I have tested this and works fine for me.
> Please let me know when you complete your testing so that I send to kvm@vger.kernel.org.

Works for me.

Acked-by: Alexander Graf <agraf@suse.de>


Alex


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-03-16 14:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-14  6:36 [PATCH] Issue in exit timing clearance Bharat Bhushan
2011-03-14  6:57 ` Bharat Bhushan
2011-03-15  5:41 ` Bharat Bhushan
2011-03-15 14:41 ` Alexander Graf
2011-03-16  3:08 ` Bhushan Bharat-R65777
2011-03-16 14:14 ` Alexander Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.