[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] Hypercall continuation and wait_event
- To: Ruslan Nikolaev <nruslan_devel@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxx>
- From: Keir Fraser <keir.xen@xxxxxxxxx>
- Date: Mon, 09 Apr 2012 21:09:19 +0100
- Delivery-date: Mon, 09 Apr 2012 20:09:53 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=user-agent:date:subject:from:to:message-id:thread-topic :thread-index:in-reply-to:mime-version:content-type :content-transfer-encoding; bh=ugmsrewgfOc8VdnXN/iArCXodLol+LMQsEYUA97yUSo=; b=sSLO8f91VER29+6LPacCOos45DakdfROzh2vfoMeaEQDv6R/QqiS+4F5OzyhRudAAD oY9y7rI19vrIioygytCnRCaks3R9PccJY0yuqAt2K/CD67+lzct0Xn/OoD0SjbihdSmJ O8ldHdddOcNDC5f/sI+MPN7HCyAeDuvt2C5ZbKxAMDoz150Mv60hkTmnY/WENQrJayMD GPtuc8gP3u3iCIbVe6ns5M7+ePM9goINuXd0+VJZq9cFfbplPMR3sxFcw5GF2PbWVhTc TtPGRYkJRjCYXOPkI1I6XsAL2BwKxsH41QAAYU0HiA2y3lHbVzXNDPZDxb56hmgI/YSD lAPA==
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
- Thread-index: Ac0WjKVpjYXL4kn/IEmniXkllqeTNw==
- Thread-topic: [Xen-devel] Hypercall continuation and wait_event
On 09/04/2012 20:18, "Ruslan Nikolaev" <nruslan_devel@xxxxxxxxx> wrote:
> Thanks for the reply.
> Since it can take arbitrarily long for an event to arrive (e.g., it is coming
> from a different guest on a user request), how do I need to handle this
> case?Does it mean that I only need to make sure that nothings get scheduled on
> this VCPU in the guest?
Nothing else *can* get scheduled on this VCPU in the guest. The VCPU will
sleep within wait_event within the hypercall context. Hence you must not
hold any hypervisor spinlocks either, for example.
> Also, it is not exactly clear to me how wait_event avoids the need for
> hypercall continuation. What about local_events_need_delivery() or
> softirq_pending()? Are they going to be handled by wait_event internally?
Your VCPU gets descheduled. Hence softirq_pending() is not your concern for
the duration that you're descheduled. And if local_event_need_delivery(),
that's too bad, they have to wait for the vcpu to wake up on the event.
> ----- Original Message -----
> From: Keir Fraser <keir.xen@xxxxxxxxx>
> To: Ruslan Nikolaev <nruslan_devel@xxxxxxxxx>; "xen-devel@xxxxxxxxxxxxx"
> Sent: Monday, April 9, 2012 6:54 PM
> Subject: Re: [Xen-devel] Hypercall continuation and wait_event
> On 09/04/2012 18:51, "Ruslan Nikolaev" <nruslan_devel@xxxxxxxxx> wrote:
>> I am curious how I can properly support hypercall continuation and
>> I have a dedicated VCPU in a domain which makes a special hypercall, and the
>> hypercall waits for certain event to arrive. I am using queues available in
>> Xen, so wait_event will be invoked in the hypercall once its ready to accept
>> events. However, my understanding that even though I have a dedicated VCPU
>> this hypercall, I still may need to support hypercall continuation properly.
>> (Is this the case?) So, my question is how exactly the need for hypercall
> No it's not the case, the old hypercall_create_continuation() mechanism does
> not need to be used with wait_event().
> -- Keir
>> preemption may affect wait_event() and wait() operations, and where would I
>> need to do hypercall_preempt_check()?
>> Thank you!
>> Xen-devel mailing list
> Xen-devel mailing list
Xen-devel mailing list