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

Re: [Xen-devel] [PATCH] xen/mcfg: Call PHYSDEVOP_pci_mmcfg_reserved before PCI enumeration



>>> On 22.09.15 at 14:35, <eswierk@xxxxxxxxxxxxxxxxxx> wrote:
> On Mon, Sep 21, 2015 at 10:21 PM, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>> I don't follow: Surely Dom0 first establishes MCFG areas to be used, and
>> only then scans the buses for devices, resulting in them to be reported to
>> the hypervisor?
> 
> That seems like a reasonable expectation, but while Linux 4.2 finds
> the mmcfg areas before scanning the PCI bus, it doesn't tell Xen about
> them until later:
> 
> acpi_init() first calls pci_mmcfg_late_init(), which searches ACPI for
> mmcfgs and checks that they are reserved in E820 or ACPI (vs
> pci_mmcfg_early_init() which searches both ACPI and hardcoded host
> bridges but checks only E820 for reservations); then calls
> acpi_scan_init() which scans the buses and calls the pci_device_add
> hypercall for each device. The pci_mmcfg_reserved hypercall is invoked
> later by xen_mcfg_late().
> 
> So if the contract is that Dom0 tells Xen about mmcfgs before the
> devices they cover, then Linux ought to call pci_mmcfg_reserved from
> (or immediately after) both pci_mmcfg_early_init() and
> pci_mmcfg_late_init().

Correct, albeit in reality whether Xen gets notified matters only when
a range is marked properly in ACPI, but is not reported through E820
(since the latter Xen has in hands for checking anyway).

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