Re: [RFC PATCHv2] x86/pci: Initial commit for new VMD device driver

From: Bjorn Helgaas
Date: Thu Oct 08 2015 - 09:29:14 EST


On Wed, Oct 07, 2015 at 04:04:07PM +0000, Keith Busch wrote:
> On Tue, 6 Oct 2015, Keith Busch wrote:
> >On Tue, 6 Oct 2015, Bjorn Helgaas wrote:
> >>>+ resource_list_for_each_entry(entry, &resources) {
> >>>+ struct resource *source, *resource = entry->res;
> >>>+
> >>>+ if (!i) {
> >>>+ resource->start = 0;
> >>>+ resource->end = (resource_size(
> >>>+ &vmd->dev->resource[0]) >> 20) - 1;
> >>>+ resource->flags = IORESOURCE_BUS | IORESOURCE_PCI_FIXED;
> >>
> >>I thought BAR0 was CFGBAR. I missed the connection to a bus number
> >>aperture.
> >
> >Right, BAR0 is the CFGBAR and is the device's aperture to access its
> >domain's config space.
>
> It's a new day, I'll try a new explanation on what this is about. The size
> of the CFGBAR determines how many bus numbers can be reached through the
> device's config space aperture. We are not setting the bus resource to
> BAR0; just determining the bus resource ending based on BAR0's size. We
> expect the bar to be 256M to access config space for 256 buses:
>
> 8 functions * 32 devices * 256 buses * 4k config space per function = 256M
>
> If the BAR wasn't provided 256M for any reason, we reduce the number of
> bus resources this domain can provide.

Yep, that makes sense. A comment here about the fact that BAR0 maps
ECAM space for the new domain might help.

Thanks!

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/