|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] RE: Resend: RE: enable_ats_device() call site
 
>>> On 21.10.11 at 03:59, "Kay, Allen M" <allen.m.kay@xxxxxxxxx> wrote:
>>  So why does the capability to list individual devices then exist? And why 
> does it matter for DRHDs, but not for ATSRs?
> 
> The difference is ATSR only is meant to communicate PCIe root ports' ATS 
> capability.  If the root port is capable, then downstream endpoints can 
> enable ATS device translation cache.
> 
> acpi_find_matched_drhd_unit() is used to find out which VT-d hardware is 
> servicing the endpoint device.  Given drhd lists either the actually PCI 
> endpoints or include_all, we have to match the actual BDF of the device 
> passed in with devices we recorded for that VT-d HW.
> 
> acpi_find_matched_astr_unit() is used to find out if the endpoint device is 
> under a ATS capable PCIe root port or not.  ASTR information is remembered as 
> secondary and subsidiary bus ranges.  All we have to do is the match the 
> device's bus number with a root ports bus range.  Matching the actual device 
> in this case, will only match the root port device itself, this is what we 
> recorded in acpi_parse_dev_scope(), which should not happen since we don't  
> assign a root port to a guest.  Even if we do, checking for ATS capability is 
> meaningless since root port will not have device translation cache.
Okay, so I'll remove that part then and re-submit both patches.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |