Isaku Yamahata wrote:
>> diff -r 008b68ff6095 xen/arch/ia64/xen/domain.c
>> --- a/xen/arch/ia64/xen/domain.c     Tue Nov 18 10:33:55 2008 +0900
>> +++ b/xen/arch/ia64/xen/domain.c     Mon Dec 15 18:41:52 2008 +0800
>> @@ -602,10 +602,8 @@ int arch_domain_create(struct domain *d,
>>      if ((d->arch.mm.pgd = pgd_alloc(&d->arch.mm)) == NULL)              goto
>> fail_nomem; 
>> 
>> -    if ( iommu_enabled && (is_hvm_domain(d) || need_iommu(d)) ){
>> -            if(iommu_domain_init(d) != 0)
>> -                    goto fail_iommu;
>> -    }
>> +    if(iommu_domain_init(d) != 0)
>> +            goto fail_iommu;
>> 
>>      /*
>>       * grant_table_create() can't fully initialize grant table for
>> domain 
> 
> Please don't drop is_hvm_domain(d) check.
> At this moment ia64 doesn't support iommu for PV domain because
Oh, thanks for the reminder. Here I neglected this.

Do you mean this:
if ( is_hvm_domain(d) )
    if(iommu_domain_init(d) != 0)
        goto fail_iommu;
This is also not ok since we must ensure iommu_domain_init() is invoked for 
Dom0 -- we need the function invoked to enable DMA remapping.
So how about changing the logic to:
if ( (d->domain_id == 0) || is_hvm_domain(d) )
    if(iommu_domain_init(d) != 0)
        goto fail_iommu;

If you agree this, I'll post a new patch.

> it would introduce race with the ia64 lockless p2m table.
> If you want VT-d support for pv domain, the race must be resolved
> somehow. 
At present, let us support VT-d for HVM guest first.

> 
> Please add comments about why 0 instead of -ENOSYS.
OK, I'll add it.


Thanks,
-- Dexuan


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

Reply via email to