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