2021-06-09 16:42:55

by Boqun Feng

[permalink] [raw]
Subject: [RFC v3 0/7] PCI: hv: Support host bridge probing on ARM64

Hi Bjorn, Arnd and Marc,

This is the v3 for the preparation of virtual PCI support on Hyper-V
ARM64. Previous versions:

v1: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/

Changes since last version:

* Use a sentinel value approach instead of calling
pci_bus_find_domain_nr() for every CONFIG_PCI_DOMAIN_GENERIC=y
arch as per suggestion from

* Improve the commit log and comments for patch #6.

* Rebase to the latest mainline.

The basic problem we need to resolve is that ARM64 is an arch with
PCI_DOMAINS_GENERIC=y, so the bus sysdata is pci_config_window. However,
Hyper-V PCI provides a paravirtualized PCI interface, so there is no
actual pci_config_window for a PCI host bridge, so no information can be
retrieve from the pci_config_window of a Hyper-V virtual PCI bus. Also
there is no corresponding ACPI device for the Hyper-V PCI root bridge.

With this patchset, we could enable the virtual PCI on Hyper-V ARM64
guest with other code under development.

Comments and suggestions are welcome.

Regards,
Boqun

Arnd Bergmann (1):
PCI: hv: Generify PCI probing

Boqun Feng (6):
PCI: Introduce domain_nr in pci_host_bridge
PCI: Allow msi domain set-up at host probing time
PCI: hv: Use pci_host_bridge::domain_nr for PCI domain
PCI: hv: Set up msi domain at bridge probing time
arm64: PCI: Support root bridge preparation for Hyper-V PCI
PCI: hv: Turn on the host bridge probing on ARM64

arch/arm64/kernel/pci.c | 7 ++-
drivers/pci/controller/pci-hyperv.c | 87 +++++++++++++++++------------
drivers/pci/probe.c | 9 ++-
include/linux/pci.h | 10 ++++
4 files changed, 73 insertions(+), 40 deletions(-)

--
2.30.2


2021-06-10 15:05:27

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [RFC v3 0/7] PCI: hv: Support host bridge probing on ARM64

On Wed, 9 Jun 2021 at 18:32, Boqun Feng <[email protected]> wrote:
>
> Hi Bjorn, Arnd and Marc,
>

Instead of cc'ing Arnd, you cc'ed me (Ard)

> This is the v3 for the preparation of virtual PCI support on Hyper-V
> ARM64. Previous versions:
>
> v1: https://lore.kernel.org/lkml/[email protected]/
> v2: https://lore.kernel.org/lkml/[email protected]/
>
> Changes since last version:
>
> * Use a sentinel value approach instead of calling
> pci_bus_find_domain_nr() for every CONFIG_PCI_DOMAIN_GENERIC=y
> arch as per suggestion from
>
> * Improve the commit log and comments for patch #6.
>
> * Rebase to the latest mainline.
>
> The basic problem we need to resolve is that ARM64 is an arch with
> PCI_DOMAINS_GENERIC=y, so the bus sysdata is pci_config_window. However,
> Hyper-V PCI provides a paravirtualized PCI interface, so there is no
> actual pci_config_window for a PCI host bridge, so no information can be
> retrieve from the pci_config_window of a Hyper-V virtual PCI bus. Also
> there is no corresponding ACPI device for the Hyper-V PCI root bridge.
>
> With this patchset, we could enable the virtual PCI on Hyper-V ARM64
> guest with other code under development.
>
> Comments and suggestions are welcome.
>
> Regards,
> Boqun
>
> Arnd Bergmann (1):
> PCI: hv: Generify PCI probing
>
> Boqun Feng (6):
> PCI: Introduce domain_nr in pci_host_bridge
> PCI: Allow msi domain set-up at host probing time
> PCI: hv: Use pci_host_bridge::domain_nr for PCI domain
> PCI: hv: Set up msi domain at bridge probing time
> arm64: PCI: Support root bridge preparation for Hyper-V PCI
> PCI: hv: Turn on the host bridge probing on ARM64
>
> arch/arm64/kernel/pci.c | 7 ++-
> drivers/pci/controller/pci-hyperv.c | 87 +++++++++++++++++------------
> drivers/pci/probe.c | 9 ++-
> include/linux/pci.h | 10 ++++
> 4 files changed, 73 insertions(+), 40 deletions(-)
>
> --
> 2.30.2
>

2021-06-10 15:45:43

by Marc Zyngier

[permalink] [raw]
Subject: Re: [RFC v3 0/7] PCI: hv: Support host bridge probing on ARM64

On 2021-06-10 16:01, Ard Biesheuvel wrote:
> On Wed, 9 Jun 2021 at 18:32, Boqun Feng <[email protected]> wrote:
>>
>> Hi Bjorn, Arnd and Marc,
>>
>
> Instead of cc'ing Arnd, you cc'ed me (Ard)

And I don't know if you intended to Cc me, but you definitely didn't.

Thanks,

M.

>
>> This is the v3 for the preparation of virtual PCI support on Hyper-V
>> ARM64. Previous versions:
>>
>> v1:
>> https://lore.kernel.org/lkml/[email protected]/
>> v2:
>> https://lore.kernel.org/lkml/[email protected]/
>>
>> Changes since last version:
>>
>> * Use a sentinel value approach instead of calling
>> pci_bus_find_domain_nr() for every CONFIG_PCI_DOMAIN_GENERIC=y
>> arch as per suggestion from
>>
>> * Improve the commit log and comments for patch #6.
>>
>> * Rebase to the latest mainline.
>>
>> The basic problem we need to resolve is that ARM64 is an arch with
>> PCI_DOMAINS_GENERIC=y, so the bus sysdata is pci_config_window.
>> However,
>> Hyper-V PCI provides a paravirtualized PCI interface, so there is no
>> actual pci_config_window for a PCI host bridge, so no information can
>> be
>> retrieve from the pci_config_window of a Hyper-V virtual PCI bus. Also
>> there is no corresponding ACPI device for the Hyper-V PCI root bridge.
>>
>> With this patchset, we could enable the virtual PCI on Hyper-V ARM64
>> guest with other code under development.
>>
>> Comments and suggestions are welcome.
>>
>> Regards,
>> Boqun
>>
>> Arnd Bergmann (1):
>> PCI: hv: Generify PCI probing
>>
>> Boqun Feng (6):
>> PCI: Introduce domain_nr in pci_host_bridge
>> PCI: Allow msi domain set-up at host probing time
>> PCI: hv: Use pci_host_bridge::domain_nr for PCI domain
>> PCI: hv: Set up msi domain at bridge probing time
>> arm64: PCI: Support root bridge preparation for Hyper-V PCI
>> PCI: hv: Turn on the host bridge probing on ARM64
>>
>> arch/arm64/kernel/pci.c | 7 ++-
>> drivers/pci/controller/pci-hyperv.c | 87
>> +++++++++++++++++------------
>> drivers/pci/probe.c | 9 ++-
>> include/linux/pci.h | 10 ++++
>> 4 files changed, 73 insertions(+), 40 deletions(-)
>>
>> --
>> 2.30.2
>>
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

--
Who you jivin' with that Cosmik Debris?

2021-06-10 16:09:40

by Boqun Feng

[permalink] [raw]
Subject: Re: [RFC v3 0/7] PCI: hv: Support host bridge probing on ARM64

On Thu, Jun 10, 2021 at 04:42:45PM +0100, Marc Zyngier wrote:
> On 2021-06-10 16:01, Ard Biesheuvel wrote:
> > On Wed, 9 Jun 2021 at 18:32, Boqun Feng <[email protected]> wrote:
> > >
> > > Hi Bjorn, Arnd and Marc,
> > >
> >
> > Instead of cc'ing Arnd, you cc'ed me (Ard)
>
> And I don't know if you intended to Cc me, but you definitely didn't.
>

Weird.. seems my sending script got somewhere wrong. Apologies for you
both, and Arnd.. I did intend to Cc you and Arnd.

How do you want this to proceed? I could do a resend right now, or I
could wait for a few days (and see others' feedback) and send a V4 next
week. Sorry again ;-(

Regards,
Boqun

> Thanks,
>
> M.
>
> >
> > > This is the v3 for the preparation of virtual PCI support on Hyper-V
> > > ARM64. Previous versions:
> > >
> > > v1: https://lore.kernel.org/lkml/[email protected]/
> > > v2: https://lore.kernel.org/lkml/[email protected]/
> > >
> > > Changes since last version:
> > >
> > > * Use a sentinel value approach instead of calling
> > > pci_bus_find_domain_nr() for every CONFIG_PCI_DOMAIN_GENERIC=y
> > > arch as per suggestion from
> > >
> > > * Improve the commit log and comments for patch #6.
> > >
> > > * Rebase to the latest mainline.
> > >
> > > The basic problem we need to resolve is that ARM64 is an arch with
> > > PCI_DOMAINS_GENERIC=y, so the bus sysdata is pci_config_window.
> > > However,
> > > Hyper-V PCI provides a paravirtualized PCI interface, so there is no
> > > actual pci_config_window for a PCI host bridge, so no information
> > > can be
> > > retrieve from the pci_config_window of a Hyper-V virtual PCI bus. Also
> > > there is no corresponding ACPI device for the Hyper-V PCI root bridge.
> > >
> > > With this patchset, we could enable the virtual PCI on Hyper-V ARM64
> > > guest with other code under development.
> > >
> > > Comments and suggestions are welcome.
> > >
> > > Regards,
> > > Boqun
> > >
> > > Arnd Bergmann (1):
> > > PCI: hv: Generify PCI probing
> > >
> > > Boqun Feng (6):
> > > PCI: Introduce domain_nr in pci_host_bridge
> > > PCI: Allow msi domain set-up at host probing time
> > > PCI: hv: Use pci_host_bridge::domain_nr for PCI domain
> > > PCI: hv: Set up msi domain at bridge probing time
> > > arm64: PCI: Support root bridge preparation for Hyper-V PCI
> > > PCI: hv: Turn on the host bridge probing on ARM64
> > >
> > > arch/arm64/kernel/pci.c | 7 ++-
> > > drivers/pci/controller/pci-hyperv.c | 87
> > > +++++++++++++++++------------
> > > drivers/pci/probe.c | 9 ++-
> > > include/linux/pci.h | 10 ++++
> > > 4 files changed, 73 insertions(+), 40 deletions(-)
> > >
> > > --
> > > 2.30.2
> > >
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > [email protected]
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
> --
> Who you jivin' with that Cosmik Debris?

2021-06-10 16:22:27

by Marc Zyngier

[permalink] [raw]
Subject: Re: [RFC v3 0/7] PCI: hv: Support host bridge probing on ARM64

On 2021-06-10 17:06, Boqun Feng wrote:
> On Thu, Jun 10, 2021 at 04:42:45PM +0100, Marc Zyngier wrote:
>> On 2021-06-10 16:01, Ard Biesheuvel wrote:
>> > On Wed, 9 Jun 2021 at 18:32, Boqun Feng <[email protected]> wrote:
>> > >
>> > > Hi Bjorn, Arnd and Marc,
>> > >
>> >
>> > Instead of cc'ing Arnd, you cc'ed me (Ard)
>>
>> And I don't know if you intended to Cc me, but you definitely didn't.
>>
>
> Weird.. seems my sending script got somewhere wrong. Apologies for you
> both, and Arnd.. I did intend to Cc you and Arnd.

No worries, it happens (I also used the wrong email address when
replying, so we're even).

> How do you want this to proceed? I could do a resend right now, or I
> could wait for a few days (and see others' feedback) and send a V4 next
> week. Sorry again ;-(

Let the current series simmer on the list for a few days, I can
always eyeball it there if I'm short of patches to review... ;-)

Thanks,

M.
--
Jazz is not dead. It just smells funny...