[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 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().

--Ed

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