All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerone Young <jyoung5@us.ibm.com>
To: kvm-ppc@vger.kernel.org
Subject: Re: [kvm-ppc-devel] [PATCH 2 of 2] Add PowerPC KVM guest
Date: Wed, 02 Apr 2008 16:56:52 +0000	[thread overview]
Message-ID: <1207155412.9783.1.camel@thinkpadL> (raw)
In-Reply-To: <1206741014.5432.36.camel@basalt>

On Wed, 2008-04-02 at 11:17 +0200, Christian Ehrhardt wrote:
> Jerone Young wrote:
> > Add PowerPC KVM guest wait handling support
> > 
> > This patch handles a guest that is in a wait state. This ensures that the guest is not allways eating up 100% cpu when it is idle.
> > 
> > Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
> > 
> > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> > --- a/arch/powerpc/kvm/powerpc.c
> > +++ b/arch/powerpc/kvm/powerpc.c
> > @@ -164,13 +164,12 @@ void kvmppc_dump_vcpu(struct kvm_vcpu *v
> [...]
> 
> > +	/* handle guest vcpu that is in wait state */
> > +	/* XXX eventually replace with kvm_vcpu_block() */
> > +	if (vcpu->arch.msr & MSR_WE) {
> 
> ###
> > +		DECLARE_WAITQUEUE(wait, current);
> > +
> > +		add_wait_queue(&vcpu->wq, &wait);
> > +
> > +		while (!kvm_cpu_has_interrupt(vcpu)
> > +			&& !signal_pending(current)
> > +			&& !kvm_arch_vcpu_runnable(vcpu)) {
> > +			
> > +			set_current_state(TASK_INTERRUPTIBLE);
> > +			schedule();
> > +		}
> > +		
> > +		__set_current_state(TASK_RUNNING);
> > +		remove_wait_queue(&vcpu->wq, &wait);
> ###
> 
> We talked about calling kvm_vcpu_block here which does the same. What has become of it?
> I mean the check is the same now and the waitqueues too. The only difference is vcpu_load/put which calls kvm_arch_vcpu_load/put which are noops for us.
> I the issues are only caused by the prempt/lockign stuff there - ?is it? - this could either changed there in kvm_vcpu_block e.g. with a ifdef, a runtime if or by moving that to the architectures which support these stuff.
> 

The reason for not using kvm_vcpu_block is that I couldn't figure out in
enough time how to get the premempt notify stuff to work. We really
don't even need it, but it's used in kvm_vcpu_block and I just don't
have the time to figure out what all is needed for it to work.

> > +	}
> > 
> >  	/* Do some exit accounting. */
> 
> 


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-ppc-devel mailing list
kvm-ppc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel

  parent reply	other threads:[~2008-04-02 16:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-28 21:50 [kvm-ppc-devel] [PATCH 2 of 2] Add PowerPC KVM guest Hollis Blanchard
2008-03-28 22:35 ` Jerone Young
2008-03-31 16:35 ` Hollis Blanchard
2008-04-02 16:56 ` Jerone Young [this message]
2008-04-02 19:26 ` Jerone Young
2008-04-15 16:14 ` Jerone Young
2008-04-15 18:29 ` Jerone Young
2008-04-15 19:09 ` Jerone Young

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1207155412.9783.1.camel@thinkpadL \
    --to=jyoung5@us.ibm.com \
    --cc=kvm-ppc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.