This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] xen: PV on HVM: support PV spinlocks

To: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] xen: PV on HVM: support PV spinlocks
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Mon, 16 Aug 2010 12:43:08 -0700
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Mon, 16 Aug 2010 12:43:53 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <alpine.DEB.2.00.1008161254350.2545@kaball-desktop>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <alpine.DEB.2.00.1008132006020.2545@kaball-desktop> <4C65B681.8040408@xxxxxxxx> <alpine.DEB.2.00.1008161254350.2545@kaball-desktop>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100720 Fedora/3.1.1-1.fc13 Lightning/1.0b2pre Thunderbird/3.1.1
 On 08/16/2010 04:56 AM, Stefano Stabellini wrote:
> On Fri, 13 Aug 2010, Jeremy Fitzhardinge wrote:
>>  On 08/13/2010 12:06 PM, Stefano Stabellini wrote:
>>> xen: PV on HVM: support PV spinlocks
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
>>> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
>>> index 6f53453..5643c43 100644
>>> --- a/arch/x86/xen/enlighten.c
>>> +++ b/arch/x86/xen/enlighten.c
>>> @@ -1290,6 +1290,8 @@ static int __cpuinit xen_hvm_cpu_notify(struct 
>>> notifier_block *self,
>>>     switch (action) {
>>>     case CPU_UP_PREPARE:
>>>             per_cpu(xen_vcpu, cpu) = 
>>> &HYPERVISOR_shared_info->vcpu_info[cpu];
>>> +           if (xen_have_vector_callback)
>>> +                   xen_init_lock_cpu(cpu);
>> Why does this depend on vector_callback?  pv spinlocks never have events
>> actually delivered.
> HVM guests cannot receive events on vcpus other than 0 without
> vector_callback, this means they wouldn't receive even a vcpu_kick and
> would get stuck.

Huh, really.  So if a vcpu is blocked in a poll hypercall on a masked
event channel and you send that vcpu an IPI, the poll won't unblock
unless you have a delivery vector?

OK, I guess.


Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>