linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] New paravirtual PCI front-end for Hyper-V VMs
@ 2015-09-11  0:00 jakeo
  2015-09-11  0:01 ` [PATCH v2 01/12] kernel:irq: Change signature of irq_domain_ops match() method, adding *bus_data jakeo
                   ` (11 more replies)
  0 siblings, 12 replies; 19+ messages in thread
From: jakeo @ 2015-09-11  0:00 UTC (permalink / raw)
  To: gregkh, kys, linux-kernel, devel, olaf, apw, vkuznets, linux-pci,
	bhelgaas, tglx
  Cc: Jake Oshins

From: Jake Oshins <jakeo@microsoft.com>

The patch series updates the one sent about a month ago in three ways.  It
integrated with other IRQ domain work done in linux-next in that time, it
distributes interrupts to multiple virtual processors in the guest VM, and it
incorporates feedback from Thomas Gleixner and others.

These patches change the IRQ domain code so that an IRQ domain can match on both
bus type and on the PCI domain.  The IRQ domain match code is modified so that
IRQ domains can have a "rank," allowing for a default one which matches every
x86 PC and more specific ones that replace the default.

The next step is to make it possible to implement an IRQ domain in a module,
by exporting a few functions.  This seems to make sense here, rather than
linking it into the kernel, because pulling it into the kernel would involve
pulling a lot of other Hyper-V-related code into the kernel, since the IRQ
domain implementation has to send messages to and receive messages from the
hypervisor, and those facilities are currently built as modules.

After that, a couple of new Hyper-V-related facilities are exported from 
hv_vmbus.ko, so that the PCI front end can correlate Linux CPUs with virtual
processor IDs and to make hypercalls.

The last patch is a new front-end driver that exposes new root PCI buses that
(virtually) contain devices being passed through into the VM.

Jake Oshins (12):
  kernel:irq:  Change signature of irq_domain_ops match() method, adding
    *bus_data
  kernel:irq: Change signature of irq_find_matching_host()
  kernel:irq: Allow for ranked matches on IRQ domains
  drivers:pci: Add IRQ domain lookup by PCI domain
  drivers:hv: Export a function that maps Linux CPU num onto Hyper-V
    proc num
  drivers:hv: Export do_hypercall()
  drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in
    a module.
  drivers:pci:msi: Store PCI domain (segment) as part of IRQ domain
  kernel:irq: Implement msi match function
  kernel:irq: Return a higher ranked match when the IRQ domain matches a
    specific PCI domain
  drivers:hv: Define the channel type for Hyper-V PCI Express
    pass-through
  drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

 MAINTAINERS                                      |    1 +
 arch/powerpc/platforms/512x/mpc5121_ads_cpld.c   |    2 +-
 arch/powerpc/platforms/cell/interrupt.c          |    2 +-
 arch/powerpc/platforms/embedded6xx/flipper-pic.c |    3 +-
 arch/powerpc/platforms/powermac/pic.c            |    3 +-
 arch/powerpc/platforms/powernv/opal-irqchip.c    |    2 +-
 arch/powerpc/platforms/ps3/interrupt.c           |    2 +-
 arch/powerpc/sysdev/ehv_pic.c                    |    3 +-
 arch/powerpc/sysdev/i8259.c                      |    2 +-
 arch/powerpc/sysdev/ipic.c                       |    2 +-
 arch/powerpc/sysdev/mpic.c                       |    2 +-
 arch/powerpc/sysdev/qe_lib/qe_ic.c               |    2 +-
 arch/powerpc/sysdev/xics/xics-common.c           |    2 +-
 arch/x86/include/asm/msi.h                       |    4 +
 arch/x86/kernel/apic/msi.c                       |    5 +-
 arch/x86/kernel/apic/vector.c                    |    2 +
 drivers/hv/hv.c                                  |    3 +-
 drivers/hv/vmbus_drv.c                           |   17 +
 drivers/irqchip/irq-gic-v3-its-pci-msi.c         |    2 +-
 drivers/irqchip/irq-gic-v3-its-platform-msi.c    |    2 +-
 drivers/of/irq.c                                 |    2 +-
 drivers/pci/Kconfig                              |    7 +
 drivers/pci/host/Makefile                        |    1 +
 drivers/pci/host/hv_pcifront.c                   | 2244 ++++++++++++++++++++++
 drivers/pci/msi.c                                |    2 +
 drivers/pci/of.c                                 |    2 +-
 drivers/pci/probe.c                              |   11 +
 include/linux/hyperv.h                           |   14 +
 include/linux/irqdomain.h                        |    9 +-
 include/linux/msi.h                              |    4 +
 kernel/irq/chip.c                                |    1 +
 kernel/irq/irqdomain.c                           |   48 +-
 kernel/irq/msi.c                                 |   24 +
 33 files changed, 2394 insertions(+), 38 deletions(-)
 create mode 100644 drivers/pci/host/hv_pcifront.c

-- 
1.9.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-09-21 15:43 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-11  0:00 [PATCH v2 00/12] New paravirtual PCI front-end for Hyper-V VMs jakeo
2015-09-11  0:01 ` [PATCH v2 01/12] kernel:irq: Change signature of irq_domain_ops match() method, adding *bus_data jakeo
2015-09-11  0:01 ` [PATCH v2 02/12] kernel:irq: Change signature of irq_find_matching_host() jakeo
2015-09-11  0:01 ` [PATCH v2 03/12] kernel:irq: Allow for ranked matches on IRQ domains jakeo
2015-09-11  0:01 ` [PATCH v2 04/12] drivers:pci: Add IRQ domain lookup by PCI domain jakeo
2015-09-21 15:43   ` Bjorn Helgaas
2015-09-11  0:01 ` [PATCH v2 05/12] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num jakeo
2015-09-11  0:01 ` [PATCH v2 06/12] drivers:hv: Export do_hypercall() jakeo
2015-09-15 23:27   ` KY Srinivasan
2015-09-15 23:29     ` Jake Oshins
2015-09-11  0:01 ` [PATCH v2 07/12] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module jakeo
2015-09-11  0:01 ` [PATCH v2 08/12] drivers:pci:msi: Store PCI domain (segment) as part of IRQ domain jakeo
2015-09-11  0:01 ` [PATCH v2 09/11] kernel:irq: Implement msi match function jakeo
2015-09-11  0:01 ` [PATCH v2 10/11] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through jakeo
2015-09-11  0:01 ` [PATCH v2 11/11] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs jakeo
2015-09-14 15:00 ` [PATCH v2 00/12] " Marc Zyngier
2015-09-14 17:59   ` Jake Oshins
2015-09-15  9:57     ` Marc Zyngier
2015-09-15 23:32       ` Jake Oshins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).