Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1251842

Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq
Date 2015-10-20 18:10 +0200
Message-ID <qlHE6-fg-25@gated-at.bofh.it> (permalink)
References <qlzwS-5dK-31@gated-at.bofh.it> <qlzwT-5dK-43@gated-at.bofh.it> <qlFLZ-5WV-41@gated-at.bofh.it> <qlHkK-85f-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Oct 20, 2015 at 05:40:36PM +0200, Paolo Bonzini wrote:
> 
> 
> On 20/10/2015 16:00, Peter Zijlstra wrote:
> >> > -		prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE);
> >> > +		prepare_to_swait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE);
> >> >  
> >> >  		if (kvm_vcpu_check_block(vcpu) < 0)
> >> >  			break;
> >> > @@ -2028,7 +2027,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
> >> >  		schedule();
> >> >  	}
> >> >  
> >> > -	finish_wait(&vcpu->wq, &wait);
> >> > +	finish_swait(&vcpu->wq, &wait);
> >> >  	cur = ktime_get();
> >> >  
> >> >  out:
> > Should we not take this opportunity to get rid of these open-coded wait
> > loops?
> 
> I find them way more readable than a 6-argument __wait_event...

I could introduce wait_event_idle_cmd() and be at 3 if you think that
helps.

#define __wait_event_idle_cmd(wq, cond, cmd) \
	___wait_event(wq, cond, TASK_IDLE, 0, 0, cmd)

etc..

Its that awkward waited variable that makes it hard to use the 'regular'
2 parameter thing. Although you could of course do horrible things like:

	__wait_event_idle(vcpu->wq, ({
		bool done = kvm_cpu_check_block(vcpu) < 0;
		if (!done)
			waited = true;
		done;
	}));

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 0/4] Simple wait queue support Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-20 09:30 +0200
  [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-20 09:30 +0200
    Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Paolo Bonzini <pbonzini@redhat.com> - 2015-10-20 15:20 +0200
    Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Peter Zijlstra <peterz@infradead.org> - 2015-10-20 16:10 +0200
      Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Paolo Bonzini <pbonzini@redhat.com> - 2015-10-20 17:50 +0200
        Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Peter Zijlstra <peterz@infradead.org> - 2015-10-20 18:10 +0200
      Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Paul Mackerras <paulus@ozlabs.org> - 2015-10-21 11:00 +0200
        Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Peter Zijlstra <peterz@infradead.org> - 2015-10-21 11:10 +0200
      Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Paul Mackerras <paulus@ozlabs.org> - 2015-10-21 11:20 +0200
      Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Paul Mackerras <paulus@ozlabs.org> - 2015-10-21 11:30 +0200
        Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Peter Zijlstra <peterz@infradead.org> - 2015-10-21 13:20 +0200
          Re: [PATCH v3 2/4] KVM: use simple waitqueue for vcpu->wq Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-23 14:00 +0200
  [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait) implementation Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-20 09:30 +0200
    Re: [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait)  implementation Boqun Feng <boqun.feng@gmail.com> - 2015-10-26 13:10 +0100
      Re: [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait)  implementation Peter Zijlstra <peterz@infradead.org> - 2015-10-26 13:30 +0100
      Re: [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait)  implementation Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-26 14:00 +0100
        Re: [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait)  implementation Peter Zijlstra <peterz@infradead.org> - 2015-10-26 15:00 +0100
          Re: [PATCH v3 1/4] wait.[ch]: Introduce the simple waitqueue (swait)  implementation Boqun Feng <boqun.feng@gmail.com> - 2015-10-26 15:30 +0100
  Re: [PATCH v3 0/4] Simple wait queue support "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-10-25 21:20 +0100
    Re: [PATCH v3 0/4] Simple wait queue support Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-10-26 07:40 +0100

csiph-web