[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/2] gnttab: Introduce rwlock to protect updates to grant table state



On 2014/12/02 14:08, Julien Grall wrote:
> Hi,
> 
> On 02/12/14 13:03, Egger, Christoph wrote:
>> On 2014/12/02 13:35, Julien Grall wrote:
>>> Hi Christoph,
>>>
>>> On 02/12/14 10:06, Christoph Egger wrote:
>>>> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
>>>> index 522c43d..37c13b1 100644
>>>> --- a/xen/arch/x86/mm.c
>>>> +++ b/xen/arch/x86/mm.c
>>>> @@ -4565,7 +4565,7 @@ int xenmem_add_to_physmap_one(
>>>>                  mfn = virt_to_mfn(d->shared_info);
>>>>              break;
>>>>          case XENMAPSPACE_grant_table:
>>>> -            spin_lock(&d->grant_table->lock);
>>>> +            write_lock(&d->grant_table->lock);
>>>>  
>>>>              if ( d->grant_table->gt_version == 0 )
>>>>                  d->grant_table->gt_version = 1;
>>>> @@ -4587,7 +4587,7 @@ int xenmem_add_to_physmap_one(
>>>>                      mfn = virt_to_mfn(d->grant_table->shared_raw[idx]);
>>>>              }
>>>>  
>>>> -            spin_unlock(&d->grant_table->lock);
>>>> +            write_unlock(&d->grant_table->lock);
>>>>              break;
>>>>          case XENMAPSPACE_gmfn_range:
>>>>          case XENMAPSPACE_gmfn:
>>>
>>> You forgot to modify the ARM bits which is using the spinlock. See
>>> arch/arm/mm.c
>>
>> I can do the change. But I don't have ARM hardware nor the build
>> infrastructure. I need your help with compiling and testing on/for ARM.
>> Alternatively you can send me a patch I can add to or squash into my
>> patch series.
> 
> I agree that testing the ARM part may require a bit of setup. But
> you can easily build testing. only a cross-compiler for ARM is required
> for this step. See:
> 
> http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions#Building_Xen_on_ARM

Thank you for this pointer.

I just compared xenmem_add_to_physmap_one() x86 and arm versions.
The real architectural functions are virt_to_mfn(), mfn_to_page() and
friends. Everything else in this function is just common code and
can be moved into xen/common/ .

Christoph


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.