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

Re: [Xen-devel] [PATCH 1/2] IOMMU/MMU: Adjust top level functions for VT-d Device-TLB flush error.



>>> On 24.03.16 at 15:12, <quan.xu@xxxxxxxxx> wrote:
> On March 24, 2016 5:59pm, <JBeulich@xxxxxxxx> wrote:
>> >>> On 24.03.16 at 10:02, <quan.xu@xxxxxxxxx> wrote:
>> > On March 18, 2016 5:49pm, <JBeulich@xxxxxxxx> wrote:
> 
> 
>> >    3. For iommu_{,un}map_page(), we'd better fix it as a normal error,
>> > as the error is not only from iommu flush, .e.g, '-ENOMEM'.
>> >      So, we need to {,un}map from the IOMMU, return an error, and roll
>> > back the failed operation( .e.g, unmap EPT).
>> 
>> Well, if that possible in a provably correct way, then sure. But be clear - 
>> when
>> the failure occurs while unmapping, unmapping the EPT entry obviously can't 
>> be
>> the solution, 
> 
> I hope we discuss about the same point as bellow?:
>    ept_set_entry()
>    {
>     ....
>           if ( iommu_flags )
>                 for ( i = 0; i < (1 << order); i++ )
>                     iommu_map_page(d, gfn + i, mfn_x(mfn) + i, iommu_flags);
>             else
>                 for ( i = 0; i < (1 << order); i++ )
>                     iommu_unmap_page(d, gfn + i);
>     ....
>    }
> 
> 
>> you'd need a true roll back.
> 
> Does it refer to as:
> If the old entry is present, we need to write back the old entry? 

Yes, but that's not as simple as it sounds: You also need to take
care of the splitting of super pages which may have occurred.

Jan


_______________________________________________
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®.