* [PATCH] RFC: Create kvm_arch_vcpu_runnable() function
@ 2007-12-03 22:15 Hollis Blanchard
2007-12-04 13:20 ` Carsten Otte
2007-12-05 10:18 ` Avi Kivity
0 siblings, 2 replies; 6+ messages in thread
From: Hollis Blanchard @ 2007-12-03 22:15 UTC (permalink / raw)
To: Avi Kivity
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---
vcpu->mp_state looks like an arch-specific field, so what do we think about
this patch? It might make sense to fold the kvm_cpu_has_interrupt() test inside
kvm_arch_vcpu_runnable() as well.
2 files changed, 9 insertions(+), 3 deletions(-)
drivers/kvm/kvm_main.c | 3 +--
drivers/kvm/x86.h | 9 ++++++++-
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -643,8 +643,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcp
*/
while (!kvm_cpu_has_interrupt(vcpu)
&& !signal_pending(current)
- && vcpu->mp_state != VCPU_MP_STATE_RUNNABLE
- && vcpu->mp_state != VCPU_MP_STATE_SIPI_RECEIVED) {
+ && !kvm_arch_vcpu_runnable(vcpu)) {
set_current_state(TASK_INTERRUPTIBLE);
vcpu_put(vcpu);
schedule();
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -471,4 +471,11 @@ static inline u32 get_rdx_init_val(void)
#define TSS_IOPB_SIZE (65536 / 8)
#define TSS_REDIRECTION_SIZE (256 / 8)
#define RMODE_TSS_SIZE (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1)
-#endif
+
+static inline int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
+{
+ return vcpu->mp_state == VCPU_MP_STATE_RUNNABLE
+ || vcpu->mp_state == VCPU_MP_STATE_SIPI_RECEIVED;
+}
+
+#endif
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] RFC: Create kvm_arch_vcpu_runnable() function 2007-12-03 22:15 [PATCH] RFC: Create kvm_arch_vcpu_runnable() function Hollis Blanchard @ 2007-12-04 13:20 ` Carsten Otte [not found] ` <47555417.7020103-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> 2007-12-05 10:18 ` Avi Kivity 1 sibling, 1 reply; 6+ messages in thread From: Carsten Otte @ 2007-12-04 13:20 UTC (permalink / raw) To: Hollis Blanchard Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Avi Kivity Hollis Blanchard wrote: > Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> Acked-by: Carsten Otte <cotte-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> We'll need this too on big iron. ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <47555417.7020103-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] RFC: Create kvm_arch_vcpu_runnable() function [not found] ` <47555417.7020103-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> @ 2007-12-04 13:53 ` Avi Kivity [not found] ` <47555BD2.1010305-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Avi Kivity @ 2007-12-04 13:53 UTC (permalink / raw) To: carsteno-tA70FqPdS9bQT0dZR+AlfA Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Hollis Blanchard Carsten Otte wrote: > Hollis Blanchard wrote: >> Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> > Acked-by: Carsten Otte <cotte-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> > > We'll need this too on big iron. What about merging kvm_cpu_has_interrupt() into _runnable()? My feeling is that we can keep it separated. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <47555BD2.1010305-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: [PATCH] RFC: Create kvm_arch_vcpu_runnable() function [not found] ` <47555BD2.1010305-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-12-05 9:06 ` Carsten Otte [not found] ` <47566A17.3040802-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Carsten Otte @ 2007-12-05 9:06 UTC (permalink / raw) To: Avi Kivity Cc: carsteno-tA70FqPdS9bQT0dZR+AlfA, kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Hollis Blanchard Avi Kivity wrote: > What about merging kvm_cpu_has_interrupt() into _runnable()? > > My feeling is that we can keep it separated. On s390 there is a difference between has_interrupt and not runnable: CPUs can be in stopped state, and they can be in enabled wait (enabled for interrupts, similar to hlt state on x86) or in disabled wait state. All those states indicate that the CPU is not runnable. Interrupts on the other hand are typically floating between all virtual CPUs and can be accepted by running CPUs only (that is either running, or in enabled wait). I agree that we should keep it seperated. ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <47566A17.3040802-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] RFC: Create kvm_arch_vcpu_runnable() function [not found] ` <47566A17.3040802-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org> @ 2007-12-05 10:06 ` Avi Kivity 0 siblings, 0 replies; 6+ messages in thread From: Avi Kivity @ 2007-12-05 10:06 UTC (permalink / raw) To: carsteno-tA70FqPdS9bQT0dZR+AlfA Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Hollis Blanchard Carsten Otte wrote: > Avi Kivity wrote: > >> What about merging kvm_cpu_has_interrupt() into _runnable()? >> >> My feeling is that we can keep it separated. >> > On s390 there is a difference between has_interrupt and not runnable: > CPUs can be in stopped state, and they can be in enabled wait (enabled > for interrupts, similar to hlt state on x86) or in disabled wait > state. All those states indicate that the CPU is not runnable. > Interrupts on the other hand are typically floating between all > virtual CPUs and can be accepted by running CPUs only (that is either > running, or in enabled wait). > > I agree that we should keep it seperated. > On x86, running hlt with interrupts disabled is similar to your disabled wait. Interrupts in general are directed towards a specific cpu, though older processors supported round-robin or priority based dispatching. With extensive caches this is a performance loss, so the feature is not missed. Thanks for the clarification. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] RFC: Create kvm_arch_vcpu_runnable() function 2007-12-03 22:15 [PATCH] RFC: Create kvm_arch_vcpu_runnable() function Hollis Blanchard 2007-12-04 13:20 ` Carsten Otte @ 2007-12-05 10:18 ` Avi Kivity 1 sibling, 0 replies; 6+ messages in thread From: Avi Kivity @ 2007-12-05 10:18 UTC (permalink / raw) To: Hollis Blanchard Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Hollis Blanchard wrote: > Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> > Applied, thanks. Note that there is free advertising space between the summary and the signoff that you can use to explain the change. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-12-05 10:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-03 22:15 [PATCH] RFC: Create kvm_arch_vcpu_runnable() function Hollis Blanchard
2007-12-04 13:20 ` Carsten Otte
[not found] ` <47555417.7020103-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-04 13:53 ` Avi Kivity
[not found] ` <47555BD2.1010305-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-05 9:06 ` Carsten Otte
[not found] ` <47566A17.3040802-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-05 10:06 ` Avi Kivity
2007-12-05 10:18 ` Avi Kivity
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox