[PATCH 1/1] drivers:hv: Allow for MMIO claims that span ACPI _CRS records

2015-11-09 Thread jakeo
From: Jake Oshins This patch makes 16GB GPUs work in Hyper-V VMs, since, for compatibility reasons, the Hyper-V BIOS lists MMIO ranges in 2GB chunks in its root bus's _CRS object. Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 16 1 file changed, 16 insertions(+) dif

[PATCH v7 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-04 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v7 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-04 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v7 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-04 Thread jakeo
From: Jake Oshins This version of the patch series incorporates feedback from Gerry Liu. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specific cpus. Second, ma

[PATCH v7 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-04 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v7 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-04 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v7 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-04 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ include/asm-generic/pci.h

[PATCH v7 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-04 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v7 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-04 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v8 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v8 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v8 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v8 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-09 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v8 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v8 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This version of the patch series incorporates feedback from Mark Zyngier, making this build on arm/arm64. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen ve

[PATCH v8 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v8 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-09 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v9 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v9 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-09 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v9 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-09 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v9 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v9 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v9 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v9 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This version of the patch series removes warning when compiling x86 32-bit. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specific cpus. Secon

[PATCH v9 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v10 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-10 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v10 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-10 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v10 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-10 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v10 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-10 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v10 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-10 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v10 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-10 Thread jakeo
From: Jake Oshins This version of the patch series removes warning when compiling x86 32-bit while still making it build cleanly for x64. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupt

[PATCH v10 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-10 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v10 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-10 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata

2016-02-02 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH RESEND 0/3] PCI: hv: New paravirtual PCI front-end driver

2016-02-02 Thread jakeo
From: Jake Oshins This is a resend of patches that enable PCI pass-through within Hyper-V VMs. This patch series only includes those which were deemed appropriate for being incorportated via the PCI tree. All other patches in previous patch series have gone through other trees and are now in ma

[PATCH RESEND 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-02 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH RESEND 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-02 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH RESEND v2 0/3] PCI: hv: New paravirtual PCI front-end driver

2016-02-09 Thread jakeo
From: Jake Oshins This version incorporates feedback from Bjorn Helgaas and fixes a build break reported by the kbuild test robot. This is a resend of patches that enable PCI pass-through within Hyper-V VMs. This patch series only includes those which were deemed appropriate for being incorport

[PATCH RESEND v2 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH RESEND v2 1/3] PCI: Add fwnode_handle to pci_sysdata

2016-02-09 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ include/linux/pci.h

[PATCH RESEND v2 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver

2016-02-16 Thread jakeo
From: Jake Oshins This version incorporates more feedback from Bjorn Helgaas. Most notably, I removed some debugging code and I consistently used architectural means for getting the PCI domain instead of just reaching into the sysdata. This is a resend of patches that enable PCI pass-through wi

[PATCH RESEND v3 1/3] PCI: Add fwnode_handle to pci_sysdata

2016-02-16 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 15 +++ include/linux/pci.h

[PATCH RESEND v3 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-16 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH RESEND v3 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-16 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH] PCI: Remove usage of pci_domain_nr when the PCI bus doesn't yet exist

2016-02-24 Thread jakeo
From: Jake Oshins This patch fixes a race condition in this driver. Using the function pci_domain_nr() only works if the PCI bus has already been fully created. This patch just deletes one call site, as it was in debug prints which aren't strictly necessary. Another call site is changed to look

[PATCH 2/5] hv: Lock access to hyperv_mmio resource tree

2016-02-24 Thread jakeo
From: Jake Oshins In existing code, this tree of resources is created in single-threaded code and never modified after it is created, and thus needs no locking. This patch introduces a semaphore for tree access, as other patches in this series introduce run-time modifications of this resource tr

[PATCH 0/5] hv: drivers: Ensure that bridge windows don't overlap

2016-02-24 Thread jakeo
From: Jake Oshins Hyper-V VMs expose paravirtual drivers through a mechanism called VMBus, which is managed by hv_vmbus.ko. For each paravirtual service instance, this driver exposes a new child device. Some of these child devices need memory address space, into which Hyper-V will map things li

[PATCH 3/5] hv: Use new vmbus_mmio_free() from client drivers.

2016-02-24 Thread jakeo
From: Jake Oshins This patch modifies all the callers of vmbus_mmio_allocate() to call vmbus_mmio_free() instead of release_mem_region(). Signed-off-by: Jake Oshins --- drivers/pci/host/pci-hyperv.c | 14 +++--- drivers/video/fbdev/hyperv_fb.c | 4 ++-- 2 files changed, 9 insertions

[PATCH 5/5] hv: Track allocations of children of hv_vmbus in private resource tree

2016-02-24 Thread jakeo
From: Jake Oshins This patch changes vmbus_allocate_mmio() and vmbus_free_mmio() so that when child paravirtual devices allocate memory-mapped I/O space, they allocate it privately from a resource tree pointed at by hyperv_mmio and also by the public resource tree iomem_resource. This allows the

[PATCH 1/5] hv: Make a function to free mmio regions through vmbus

2016-02-24 Thread jakeo
From: Jake Oshins This patch introduces a function that reverses everything done by vmbus_allocate_mmio(). Existing code just called release_mem_region(). Future patches in this series require a more complex sequence of actions, so this function is introduced to wrap those actions. Signed-off-

[PATCH 4/5] hv: Reverse order of resources in hyperv_mmio

2016-02-24 Thread jakeo
From: Jake Oshins A patch later in this series allocates child nodes in this resource tree. For that to work, this tree needs to be sorted in ascending order. Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/hv

[PATCH 0/6] Front-end driver for PCIe Pass-through on Hyper-V

2015-06-11 Thread jakeo
From: Jake Oshins This patch does some slight refactoring on the hv_vmbus driver and its dependents and then introduces a new paravirtual front-end driver for PCI which supports PCI Express devices passed through to a Linux guest running in a Hyper-V VM. To support this front-end, several new me

[PATCH 5/6] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-06-11 Thread jakeo
From: Jake Oshins Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 6fec42d..1903238 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h @@ -1144,6 +1144,17 @@

[PATCH 4/6] drivers:hv: Export a function that maps Linux proc num onto Hyper-V proc num

2015-06-11 Thread jakeo
From: Jake Oshins Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 16 include/linux/hyperv.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 067a469..65e4eb6 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers

[PATCH 2/6] drivers:hv: Move MMIO range picking from hyper_fb.mod to hv_vmbus.mod

2015-06-11 Thread jakeo
From: Jake Oshins Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 87 - drivers/video/fbdev/hyperv_fb.c | 46 ++ include/linux/hyperv.h | 7 +++- 3 files changed, 112 insertions(+), 28 deletions(-) diff --gi

[PATCH 3/6] arch:x86:hv: Add mechanism for Hyper-V paravirt drivers to hook msi message creation

2015-06-11 Thread jakeo
From: Jake Oshins Signed-off-by: Jake Oshins --- arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/cpu/mshyperv.c | 30 ++ 2 files changed, 32 insertions(+) diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h index c163215..bf7789e

[PATCH 1/6] drivers:hv: Modify vmbus to search for all MMIO ranges available

2015-06-11 Thread jakeo
From: Jake Oshins Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 105 ++-- drivers/video/fbdev/hyperv_fb.c | 2 +- include/linux/hyperv.h | 2 +- 3 files changed, 92 insertions(+), 17 deletions(-) diff --git a/drivers/hv/vmbus_

[PATCH 6/6] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-06-11 Thread jakeo
From: Jake Oshins drivers:pci:hv: Update MAINTAINERS drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs Signed-off-by: Jake Oshins --- MAINTAINERS|1 + drivers/pci/Kconfig|9 + drivers/pci/host/Makefile |1 + drivers/pci/host/hv_pcifr

[PATCH v2 2/6] drivers:hv: Move MMIO range picking from hyper_fb.mod to hv_vmbus.mod

2015-06-15 Thread jakeo
From: Jake Oshins Currently, hv_vmbus finds the ranges of memory-mapped I/O space that are designated for paravirtual (and fully virtual) devices by the virtual firmware (BIOS or UEFI) and exports the answer. The hyperv_fb video driver then takes that information and uses it to claim a range of

[PATCH v2 5/6] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-06-15 Thread jakeo
From: Jake Oshins This patch updates the list of VMBus channel GUIDs, defining the one for PCI Express pass-through. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 6fec

[PATCH v2 3/6] arch:x86:hv: Add mechanism for Hyper-V paravirt drivers to hook msi message creation

2015-06-15 Thread jakeo
From: Jake Oshins This patch, when the kernel is built with CONFIG_HYPERV, exposes functions that would allow a paravirtual PCI front-end driver to hook MSI (message- signaled interrupt) message creation. Signed-off-by: Jake Oshins --- arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/c

[PATCH v2 4/6] drivers:hv: Export a function that maps Linux proc num onto Hyper-V proc num

2015-06-15 Thread jakeo
From: Jake Oshins This patch exports a function which maps Linux processor number onto Hyper-V virtual processor number. This is necessary in order to map message- signaled interrupts (MSIs) into a VM, as the hypervisor needs to know the right target VP. Signed-off-by: Jake Oshins --- drivers

[PATCH v2 6/6] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-06-15 Thread jakeo
From: Jake Oshins This patch supplies a new driver, hv_pcifront, which exposes new root PCI buses. When a Hyper-V VM running Linux is offered a paravirtual PCI bus in order to expose a device passed through on that bus, this drver registers a new bus with the PCI driver. This new bus is bus "ze

[PATCH v2 0/6] hv: Front-end driver for PCIe Pass-through on Hyper-V

2015-06-15 Thread jakeo
From: Jake Oshins This patch does some slight refactoring on the hv_vmbus driver and its dependents and then introduces a new paravirtual front-end driver for PCI which supports PCI Express devices passed through to a Linux guest running in a Hyper-V VM. To support this front-end, several new me

[PATCH v2 1/6] drivers:hv: Modify vmbus to search for all MMIO ranges available

2015-06-15 Thread jakeo
From: Jake Oshins Before this patch, hv_vmbus would search the ACPI namespace above its device looking for a _CRS (current resources) object, and hunt through the list of resources in there looking for one that described memory- mapped I/O space above the 4GB line. It then exported the result fo

[PATCH v3 0/6] hv: Front-end driver for PCIe Pass-through on Hyper-V

2015-06-17 Thread jakeo
From: Jake Oshins This patch series differs from the previous one (v2) in that it fixes kernel-doc commenting style and changes a few variable and function names to be more understandable. These patches do some slight refactoring on the hv_vmbus driver and its dependents and then introduces a ne

[PATCH v3 5/6] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-06-17 Thread jakeo
From: Jake Oshins This patch updates the list of VMBus channel GUIDs, defining the one for PCI Express pass-through. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 2e40

[PATCH v3 1/6] hv: Modify vmbus to search for all MMIO ranges available

2015-06-17 Thread jakeo
From: Jake Oshins Before this patch, hv_vmbus would search the ACPI namespace above its device looking for a _CRS (current resources) object, and hunt through the list of resources in there looking for one that described memory- mapped I/O space above the 4GB line. It then exported the result fo

[PATCH v3 2/6] drivers:hv: Move MMIO range picking from hyper_fb.mod to hv_vmbus.mod

2015-06-17 Thread jakeo
From: Jake Oshins Currently, hv_vmbus finds the ranges of memory-mapped I/O space that are designated for paravirtual (and fully virtual) devices by the virtual firmware (BIOS or UEFI) and exports the answer. The hyperv_fb video driver then takes that information and uses it to claim a range of

[PATCH v3 3/6] arch:x86:hv: Add mechanism for Hyper-V paravirt drivers to hook msi creation

2015-06-17 Thread jakeo
From: Jake Oshins This patch, when the kernel is built with CONFIG_HYPERV, exposes functions that would allow a paravirtual PCI front-end driver to hook MSI (message- signaled interrupt) message creation. Signed-off-by: Jake Oshins --- arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/c

[PATCH v3 4/6] drivers:hv: Export a function that maps Linux proc num onto Hyper-V proc num

2015-06-17 Thread jakeo
From: Jake Oshins This patch exports a function which maps Linux CPU number onto Hyper-V virtual processor number. This is necessary in order to map message- signaled interrupts (MSIs) into a VM, as the hypervisor needs to know the right target VP. Signed-off-by: Jake Oshins --- drivers/hv/vm

[PATCH v3 6/6] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-06-17 Thread jakeo
From: Jake Oshins This patch supplies a new driver, hv_pcifront, which exposes new root PCI buses. When a Hyper-V VM running Linux is offered a paravirtual PCI bus in order to expose a device passed through on that bus, this drver registers a new bus with the PCI driver. This new bus is bus "ze

[PATCH 1/2] drivers:hv: Modify hv_vmbus to search for all MMIO ranges available.

2015-06-25 Thread jakeo
From: Jake Oshins This patch changes the logic in hv_vmbus to record all of the ranges in the VM's firmware (BIOS or UEFI) that offer regions of memory-mapped I/O space for use by paravirtual front-end drivers. The old logic just found one range above 4GB and called it good. This logic will fin

[PATCH 2/2] drivers:hv: Move MMIO range picking from hyper_fb to hv_vmbus

2015-06-25 Thread jakeo
From: Jake Oshins This patch deletes the logic from hyperv_fb which picked a range of MMIO space for the frame buffer and adds new logic to hv_vmbus which picks ranges for child drivers. The new logic isn't quite the same as the old, as it considers more possible ranges. Signed-off-by: Jake Osh

[PATCH 0/2] Change memory-mapped I/O management for Hyper-V paravirt

2015-06-25 Thread jakeo
From: Jake Oshins This patch series changes the way that hv_vmbus searches for ranges of memory-mapped I/O space (MMIO) which can be used by its children. The old way just found the one and only range above 4GB. This one makes all ranges exposed in the VM's firmware potential candidates. It a

[PATCH 2/4] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-08-01 Thread jakeo
From: Jake Oshins This patch defines the channel type for a paravirtual PCI front-end within a Hyper-V VM. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 02393b6..ab173

[PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-08-01 Thread jakeo
From: Jake Oshins This patch introduces a driver which exposes a root PCI bus whenever a PCI Express device is passed through to a Hyper-V VM. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within this driver. Signed-off-by

[PATCH 3/4] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-08-01 Thread jakeo
From: Jake Oshins The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH 1/4] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-08-01 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake

[PATCH 0/4] New Paravirtual front-end for PCI in a Hyper-V VM

2015-08-01 Thread jakeo
From: Jake Oshins This patch series exposes the primitives necessary for an interrupt domain in a module and then introduces a new driver. This driver exposes a root PCI bus when running in a Hyper-V VM for each device which is passed through to the VM from the physical host. This patch series

[PATCH v3 4/7] PCI: Record an fwnode associated with root PCI buses, optionally

2015-10-26 Thread jakeo
From: Jake Oshins This patch allows a PCI front-end implementation to supply an fwnode_handle associated with a root PCI bus, optionally. If supplied, the PCI driver records this. This patch supports the next patch in the series, which looks up an IRQ domain through this handle. Signed-off-by:

[PATCH v3 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-10-26 Thread jakeo
From: Jake Oshins The existing PCI code looks for an IRQ domain associated with a root PCI bus by looking in the Open Firmware tree. This patch introduces a second way to identify the associated IRQ domain, if the lookup in the OF tree fails. The handle used for the IRQ domain lookup was introdu

[PATCH v3 2/7] drivers:hv: Export hv_do_hypercall()

2015-10-26 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h | 2 +- inc

[PATCH v3 6/7] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-10-26 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v3 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-26 Thread jakeo
From: Jake Oshins The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v3 0/7] New paravirtual PCI front-end for Hyper-V VMs

2015-10-26 Thread jakeo
From: Jake Oshins This patch series updates the one sent on Sept. 10, mostly by rebasing on Mark Zyngier's changes around IRQ domains and the OF tree. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targ

[PATCH v3 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-10-26 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake O

[PATCH v3 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-26 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v4 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-10-29 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v4 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-10-29 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 11 +++ 1 file changed, 11 insertions(

[PATCH v4 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-29 Thread jakeo
From: Jake Oshins This patch series incorporates feedback from Gerry Liu (jiang@linux.intel.com). First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specfic cpus.

[PATCH v4 2/7] drivers:hv: Export hv_do_hypercall()

2015-10-29 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v4 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-10-29 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v4 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-29 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, whereing a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v4 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-29 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v4 6/7] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-10-29 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v5 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-30 Thread jakeo
From: Jake Oshins This patch series incorporates feedback related to the version sent yesterday. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specfic cpus. Sec

[PATCH v5 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-30 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, whereing a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v5 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-10-30 Thread jakeo
From: Jake Oshins This patch adds an fwnode_handle to struct pci_sysdata, which is used by the next patch in the series when trying to locate an IRQ domain associated with a root PCI bus. Signed-off-by: Jake Oshins --- arch/x86/include/asm/pci.h | 11 +++ 1 file changed, 11 insertions(

  1   2   >