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

Re: [Xen-devel] [PATCH v3 1/2] VT-d: Reduce spin timeout to 1ms, which can be boot-time changed.



>>> On 15.12.15 at 09:35, <quan.xu@xxxxxxxxx> wrote:
>>  On 14.12.2015 at 5:14pm, <JBeulich@xxxxxxxx> wrote:
>> >>> On 12.12.15 at 14:21, <quan.xu@xxxxxxxxx> wrote:
>> > @@ -167,10 +172,12 @@ static int queue_invalidate_wait(struct iommu
>> *iommu,
>> >          start_time = NOW();
>> >          while ( poll_slot != QINVAL_STAT_DONE )
>> >          {
>> > -            if ( NOW() > (start_time + DMAR_OPERATION_TIMEOUT) )
>> > +            if ( NOW() > (start_time + IOMMU_QI_TIMEOUT) )
>> >              {
>> >                  print_qi_regs(iommu);
>> > -                panic("queue invalidate wait descriptor was not
>> executed");
>> > +                dprintk(XENLOG_WARNING VTDPREFIX,
>> > +                        "Queue invalidate wait descriptor was
>> timeout.\n");
>> > +                return -ETIMEDOUT;
>> >              }
>> 
>> Without the v2 discussion even having finished, and without you having taken
>> care of v2 comments here, I don't see much value in this v3.
>> 
> 
> I should check for _any_ kind_of_error and all_the_way_up_the_call_trees in 
> [patch 1/2].

As said, perhaps better in patch 1/3.

> 1. For _any_ kind_of_error,
> now it includes '-ETIMEDOUT' and '-EOPNOTSUPP'. I should check the return 
> code, if it is _not_ZERO.
> The callers need to also either pass it on or deal with it. (if the return 
> code is _not_ZERO, it should check whether it is '-ETIMEDOUT' in [patch 2/2])
> 
> 2. all_the_way_up_the_call_trees
> 
> .i.e
> enable_intremap()
> |--iommu_flush_iec_global()
>   |--__iommu_flush_iec()
>     |--invalidate_sync()
> 
> In enable_intremap(), if iommu_flush_iec_global()  is failed, 
> enable_intremap() should deal with this error and then return.

Yes.

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