All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tiejun Chen <tiejun.chen@intel.com>
To: anthony.perard@citrix.com, stefano.stabellini@eu.citrix.com,
	mst@redhat.com, Kelly.Zytaruk@amd.com
Cc: peter.maydell@linaro.org, xen-devel@lists.xensource.com,
	weidong.han@intel.com, allen.m.kay@intel.com,
	qemu-devel@nongnu.org, jean.guyader@eu.citrix.com,
	anthony@codemonkey.ws, yang.z.zhang@Intel.com
Subject: [Qemu-devel] [v2][PATCH 6/8] xen, gfx passthrough: support Intel IGD passthrough with VT-D
Date: Fri, 16 May 2014 18:53:42 +0800	[thread overview]
Message-ID: <1400237624-8505-7-git-send-email-tiejun.chen@intel.com> (raw)
In-Reply-To: <1400237624-8505-1-git-send-email-tiejun.chen@intel.com>

Some registers of Intel IGD are mapped in host bridge, so it needs to
passthrough these registers of physical host bridge to guest because
emulated host bridge in guest doesn't have these mappings.

The original patch is from Weidong Han < weidong.han @ intel.com >

Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
Cc:Weidong Han <weidong.han@intel.com>
---
v2:

* To introduce is_igd_passthrough() to make sure we touch physical host bridge
  only in IGD case.

 hw/xen/xen_pt.h          |   4 ++
 hw/xen/xen_pt_graphics.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 144 insertions(+)

diff --git a/hw/xen/xen_pt.h b/hw/xen/xen_pt.h
index 4d3a18d..507165c 100644
--- a/hw/xen/xen_pt.h
+++ b/hw/xen/xen_pt.h
@@ -302,5 +302,9 @@ extern int xen_has_gfx_passthru;
 int xen_pt_register_vga_regions(XenHostPCIDevice *dev);
 int xen_pt_unregister_vga_regions(XenHostPCIDevice *dev);
 int xen_pt_setup_vga(XenHostPCIDevice *dev);
+int pci_create_pch(PCIBus *bus);
+void igd_pci_write(PCIDevice *pci_dev, uint32_t config_addr,
+                   uint32_t val, int len);
+uint32_t igd_pci_read(PCIDevice *pci_dev, uint32_t config_addr, int len);
 
 #endif /* !XEN_PT_H */
diff --git a/hw/xen/xen_pt_graphics.c b/hw/xen/xen_pt_graphics.c
index 6b86293..066bc4d 100644
--- a/hw/xen/xen_pt_graphics.c
+++ b/hw/xen/xen_pt_graphics.c
@@ -4,6 +4,7 @@
 #include "xen_pt.h"
 #include "xen-host-pci-device.h"
 #include "hw/xen/xen_backend.h"
+#include "hw/pci/pci_bus.h"
 
 static int is_vga_passthrough(XenHostPCIDevice *dev)
 {
@@ -246,3 +247,142 @@ static int create_pch_isa_bridge(PCIBus *bus, XenHostPCIDevice *hdev)
     XEN_PT_LOG(dev, "Intel PCH ISA bridge is created.\n");
     return 0;
 }
+
+int pci_create_pch(PCIBus *bus)
+{
+    XenHostPCIDevice hdev;
+    int r = 0;
+
+    if (!xen_has_gfx_passthru) {
+        return -1;
+    }
+
+    r = xen_host_pci_device_get(&hdev, 0, 0, 0x1f, 0);
+    if (r) {
+        XEN_PT_ERR(NULL, "Fail to find intel PCH in host\n");
+        goto err;
+    }
+
+    if (hdev.vendor_id == PCI_VENDOR_ID_INTEL) {
+        r = create_pch_isa_bridge(bus, &hdev);
+        if (r) {
+            XEN_PT_ERR(NULL, "Fail to create PCH ISA bridge.\n");
+            goto err;
+        }
+    }
+
+    xen_host_pci_device_put(&hdev);
+
+    return  r;
+
+err:
+    return r;
+}
+
+/*
+ * Currently we just pass this physical host bridge for IGD, 00:02.0.
+ */
+static int is_igd_passthrough(PCIDevice *pci_dev)
+{
+    PCIDevice *f = pci_dev->bus->devices[PCI_DEVFN(2, 0)];
+    if (pci_dev->bus->devices[PCI_DEVFN(2, 0)]) {
+        XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, f);
+        return (is_vga_passthrough(&s->real_device)
+                    && (s->real_device.vendor_id == PCI_VENDOR_ID_INTEL));
+    } else {
+        return 0;
+    }
+}
+
+void igd_pci_write(PCIDevice *pci_dev, uint32_t config_addr,
+                   uint32_t val, int len)
+{
+    XenHostPCIDevice dev;
+    int r;
+
+    assert(pci_dev->devfn == 0x00);
+
+    if (!is_igd_passthrough(pci_dev)) {
+        goto write_default;
+    }
+
+    switch (config_addr) {
+    case 0x58:      /* PAVPC Offset */
+        break;
+    default:
+        goto write_default;
+    }
+
+    /* Host write */
+    r = xen_host_pci_device_get(&dev, 0, 0, 0, 0);
+    if (r) {
+        XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+        abort();
+    }
+
+    r = xen_host_pci_set_block(&dev, config_addr, (uint8_t *)&val, len);
+    if (r) {
+        XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+        abort();
+    }
+
+    xen_host_pci_device_put(&dev);
+
+    return;
+
+write_default:
+    pci_default_write_config(pci_dev, config_addr, val, len);
+}
+
+uint32_t igd_pci_read(PCIDevice *pci_dev, uint32_t config_addr, int len)
+{
+    XenHostPCIDevice dev;
+    uint32_t val;
+    int r;
+
+    assert(pci_dev->devfn == 0x00);
+
+    if (!is_igd_passthrough(pci_dev)) {
+        goto read_default;
+    }
+
+    switch (config_addr) {
+    case 0x00:        /* vendor id */
+    case 0x02:        /* device id */
+    case 0x08:        /* revision id */
+    case 0x2c:        /* sybsystem vendor id */
+    case 0x2e:        /* sybsystem id */
+    case 0x50:        /* SNB: processor graphics control register */
+    case 0x52:        /* processor graphics control register */
+    case 0xa0:        /* top of memory */
+    case 0xb0:        /* ILK: BSM: should read from dev 2 offset 0x5c */
+    case 0x58:        /* SNB: PAVPC Offset */
+    case 0xa4:        /* SNB: graphics base of stolen memory */
+    case 0xa8:        /* SNB: base of GTT stolen memory */
+        break;
+    default:
+        goto read_default;
+    }
+
+    /* Host read */
+    r = xen_host_pci_device_get(&dev, 0, 0, 0, 0);
+    if (r) {
+        goto err_out;
+    }
+
+    r = xen_host_pci_get_block(&dev, config_addr, (uint8_t *)&val, len);
+    if (r) {
+        goto err_out;
+    }
+
+    xen_host_pci_device_put(&dev);
+
+    return val;
+
+read_default:
+    return pci_default_read_config(pci_dev, config_addr, len);
+
+err_out:
+    XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+    return -1;
+}
-- 
1.9.1

WARNING: multiple messages have this Message-ID (diff)
From: Tiejun Chen <tiejun.chen@intel.com>
To: anthony.perard@citrix.com, stefano.stabellini@eu.citrix.com,
	mst@redhat.com, Kelly.Zytaruk@amd.com
Cc: peter.maydell@linaro.org, xen-devel@lists.xensource.com,
	weidong.han@intel.com, allen.m.kay@intel.com,
	qemu-devel@nongnu.org, jean.guyader@eu.citrix.com,
	anthony@codemonkey.ws, yang.z.zhang@Intel.com
Subject: [v2][PATCH 6/8] xen, gfx passthrough: support Intel IGD passthrough with VT-D
Date: Fri, 16 May 2014 18:53:42 +0800	[thread overview]
Message-ID: <1400237624-8505-7-git-send-email-tiejun.chen@intel.com> (raw)
In-Reply-To: <1400237624-8505-1-git-send-email-tiejun.chen@intel.com>

Some registers of Intel IGD are mapped in host bridge, so it needs to
passthrough these registers of physical host bridge to guest because
emulated host bridge in guest doesn't have these mappings.

The original patch is from Weidong Han < weidong.han @ intel.com >

Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
Cc:Weidong Han <weidong.han@intel.com>
---
v2:

* To introduce is_igd_passthrough() to make sure we touch physical host bridge
  only in IGD case.

 hw/xen/xen_pt.h          |   4 ++
 hw/xen/xen_pt_graphics.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 144 insertions(+)

diff --git a/hw/xen/xen_pt.h b/hw/xen/xen_pt.h
index 4d3a18d..507165c 100644
--- a/hw/xen/xen_pt.h
+++ b/hw/xen/xen_pt.h
@@ -302,5 +302,9 @@ extern int xen_has_gfx_passthru;
 int xen_pt_register_vga_regions(XenHostPCIDevice *dev);
 int xen_pt_unregister_vga_regions(XenHostPCIDevice *dev);
 int xen_pt_setup_vga(XenHostPCIDevice *dev);
+int pci_create_pch(PCIBus *bus);
+void igd_pci_write(PCIDevice *pci_dev, uint32_t config_addr,
+                   uint32_t val, int len);
+uint32_t igd_pci_read(PCIDevice *pci_dev, uint32_t config_addr, int len);
 
 #endif /* !XEN_PT_H */
diff --git a/hw/xen/xen_pt_graphics.c b/hw/xen/xen_pt_graphics.c
index 6b86293..066bc4d 100644
--- a/hw/xen/xen_pt_graphics.c
+++ b/hw/xen/xen_pt_graphics.c
@@ -4,6 +4,7 @@
 #include "xen_pt.h"
 #include "xen-host-pci-device.h"
 #include "hw/xen/xen_backend.h"
+#include "hw/pci/pci_bus.h"
 
 static int is_vga_passthrough(XenHostPCIDevice *dev)
 {
@@ -246,3 +247,142 @@ static int create_pch_isa_bridge(PCIBus *bus, XenHostPCIDevice *hdev)
     XEN_PT_LOG(dev, "Intel PCH ISA bridge is created.\n");
     return 0;
 }
+
+int pci_create_pch(PCIBus *bus)
+{
+    XenHostPCIDevice hdev;
+    int r = 0;
+
+    if (!xen_has_gfx_passthru) {
+        return -1;
+    }
+
+    r = xen_host_pci_device_get(&hdev, 0, 0, 0x1f, 0);
+    if (r) {
+        XEN_PT_ERR(NULL, "Fail to find intel PCH in host\n");
+        goto err;
+    }
+
+    if (hdev.vendor_id == PCI_VENDOR_ID_INTEL) {
+        r = create_pch_isa_bridge(bus, &hdev);
+        if (r) {
+            XEN_PT_ERR(NULL, "Fail to create PCH ISA bridge.\n");
+            goto err;
+        }
+    }
+
+    xen_host_pci_device_put(&hdev);
+
+    return  r;
+
+err:
+    return r;
+}
+
+/*
+ * Currently we just pass this physical host bridge for IGD, 00:02.0.
+ */
+static int is_igd_passthrough(PCIDevice *pci_dev)
+{
+    PCIDevice *f = pci_dev->bus->devices[PCI_DEVFN(2, 0)];
+    if (pci_dev->bus->devices[PCI_DEVFN(2, 0)]) {
+        XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, f);
+        return (is_vga_passthrough(&s->real_device)
+                    && (s->real_device.vendor_id == PCI_VENDOR_ID_INTEL));
+    } else {
+        return 0;
+    }
+}
+
+void igd_pci_write(PCIDevice *pci_dev, uint32_t config_addr,
+                   uint32_t val, int len)
+{
+    XenHostPCIDevice dev;
+    int r;
+
+    assert(pci_dev->devfn == 0x00);
+
+    if (!is_igd_passthrough(pci_dev)) {
+        goto write_default;
+    }
+
+    switch (config_addr) {
+    case 0x58:      /* PAVPC Offset */
+        break;
+    default:
+        goto write_default;
+    }
+
+    /* Host write */
+    r = xen_host_pci_device_get(&dev, 0, 0, 0, 0);
+    if (r) {
+        XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+        abort();
+    }
+
+    r = xen_host_pci_set_block(&dev, config_addr, (uint8_t *)&val, len);
+    if (r) {
+        XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+        abort();
+    }
+
+    xen_host_pci_device_put(&dev);
+
+    return;
+
+write_default:
+    pci_default_write_config(pci_dev, config_addr, val, len);
+}
+
+uint32_t igd_pci_read(PCIDevice *pci_dev, uint32_t config_addr, int len)
+{
+    XenHostPCIDevice dev;
+    uint32_t val;
+    int r;
+
+    assert(pci_dev->devfn == 0x00);
+
+    if (!is_igd_passthrough(pci_dev)) {
+        goto read_default;
+    }
+
+    switch (config_addr) {
+    case 0x00:        /* vendor id */
+    case 0x02:        /* device id */
+    case 0x08:        /* revision id */
+    case 0x2c:        /* sybsystem vendor id */
+    case 0x2e:        /* sybsystem id */
+    case 0x50:        /* SNB: processor graphics control register */
+    case 0x52:        /* processor graphics control register */
+    case 0xa0:        /* top of memory */
+    case 0xb0:        /* ILK: BSM: should read from dev 2 offset 0x5c */
+    case 0x58:        /* SNB: PAVPC Offset */
+    case 0xa4:        /* SNB: graphics base of stolen memory */
+    case 0xa8:        /* SNB: base of GTT stolen memory */
+        break;
+    default:
+        goto read_default;
+    }
+
+    /* Host read */
+    r = xen_host_pci_device_get(&dev, 0, 0, 0, 0);
+    if (r) {
+        goto err_out;
+    }
+
+    r = xen_host_pci_get_block(&dev, config_addr, (uint8_t *)&val, len);
+    if (r) {
+        goto err_out;
+    }
+
+    xen_host_pci_device_put(&dev);
+
+    return val;
+
+read_default:
+    return pci_default_read_config(pci_dev, config_addr, len);
+
+err_out:
+    XEN_PT_ERR(pci_dev, "Can't get pci_dev_host_bridge\n");
+    return -1;
+}
-- 
1.9.1

  parent reply	other threads:[~2014-05-16 10:55 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-16 10:53 [Qemu-devel] [v2][PATCH 0/8] xen: add Intel IGD passthrough support Tiejun Chen
2014-05-16 10:53 ` Tiejun Chen
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 1/8] pci: use bitmap to manage registe/runregister pci device Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 2/8] pci: provide a way to reserve some specific devfn Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 14:07   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:07     ` Konrad Rzeszutek Wilk
2014-05-19  9:43     ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:43       ` Chen, Tiejun
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 3/8] xen, gfx passthrough: basic graphics passthrough support Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 14:06   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:06     ` Konrad Rzeszutek Wilk
2014-05-19  9:42     ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:42       ` Chen, Tiejun
2014-05-19 13:35       ` [Qemu-devel] " Konrad Rzeszutek Wilk
2014-05-19 13:35         ` Konrad Rzeszutek Wilk
2014-05-20  9:32         ` [Qemu-devel] " Chen, Tiejun
2014-05-20  9:32           ` Chen, Tiejun
2014-05-19 12:10     ` [Qemu-devel] " Stefano Stabellini
2014-05-19 12:10       ` Stefano Stabellini
2014-05-20  5:09       ` [Qemu-devel] " Chen, Tiejun
2014-05-20  5:09         ` Chen, Tiejun
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 4/8] xen, gfx passthrough: reserve 00:02.0 for INTEL IGD Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 14:08   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:08     ` Konrad Rzeszutek Wilk
2014-05-19  9:54     ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:54       ` Chen, Tiejun
2014-05-19  6:44   ` [Qemu-devel] " Gerd Hoffmann
2014-05-19  6:44     ` Gerd Hoffmann
2014-05-19  7:48     ` [Qemu-devel] [Xen-devel] " Fabio Fantoni
2014-05-19  7:48       ` Fabio Fantoni
2014-05-19  8:15       ` [Qemu-devel] " Zhang, Yang Z
2014-05-19  8:15         ` Zhang, Yang Z
2014-05-19  9:34       ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:34         ` Chen, Tiejun
2014-05-19  9:25     ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:25       ` Chen, Tiejun
2014-05-19 10:13       ` [Qemu-devel] " Michael S. Tsirkin
2014-05-19 10:13         ` Michael S. Tsirkin
2014-05-20  9:34         ` [Qemu-devel] " Chen, Tiejun
2014-05-20  9:34           ` Chen, Tiejun
2014-05-20 11:36           ` [Qemu-devel] " Michael S. Tsirkin
2014-05-20 11:36             ` Michael S. Tsirkin
2014-05-19 11:22       ` [Qemu-devel] " Gerd Hoffmann
2014-05-19 11:22         ` Gerd Hoffmann
2014-05-19 12:04         ` [Qemu-devel] " Chen, Tiejun
2014-05-19 12:04           ` Chen, Tiejun
2014-05-19 13:50           ` [Qemu-devel] " Gerd Hoffmann
2014-05-19 13:50             ` Gerd Hoffmann
2014-05-19 14:00             ` [Qemu-devel] " Daniel P. Berrange
2014-05-19 14:00               ` Daniel P. Berrange
2014-05-21  7:07             ` [Qemu-devel] " Chen, Tiejun
2014-05-21  7:07               ` Chen, Tiejun
2014-05-22  0:31               ` [Qemu-devel] " Chen, Tiejun
2014-05-22  0:31                 ` Chen, Tiejun
2014-05-22  5:39                 ` [Qemu-devel] " Gerd Hoffmann
2014-05-22  5:39                   ` Gerd Hoffmann
2014-05-22  6:18                   ` [Qemu-devel] " Chen, Tiejun
2014-05-22  6:18                     ` Chen, Tiejun
2014-05-22  6:44                     ` [Qemu-devel] " Gerd Hoffmann
2014-05-22  6:44                       ` Gerd Hoffmann
2014-05-22  6:49                       ` [Qemu-devel] " Michael S. Tsirkin
2014-05-22  6:49                         ` Michael S. Tsirkin
2014-05-22  7:11                       ` [Qemu-devel] " Chen, Tiejun
2014-05-22  7:11                         ` Chen, Tiejun
2014-05-22 10:50                       ` [Qemu-devel] " Chen, Tiejun
2014-05-22 10:50                         ` Chen, Tiejun
2014-05-22 11:03                         ` [Qemu-devel] " Gonglei (Arei)
2014-05-22 11:03                           ` Gonglei (Arei)
2014-05-22 11:22                         ` [Qemu-devel] " Gerd Hoffmann
2014-05-22 11:22                           ` Gerd Hoffmann
2014-05-23  1:07                           ` Chen, Tiejun
2014-05-23  1:07                             ` Chen, Tiejun
2014-05-22 11:25                         ` [Qemu-devel] " Michael S. Tsirkin
2014-05-22 11:25                           ` Michael S. Tsirkin
2014-05-22 14:20                           ` [Qemu-devel] [Xen-devel] " Igor Mammedov
2014-05-22 14:20                             ` Igor Mammedov
2014-05-23  1:18                             ` [Qemu-devel] " Chen, Tiejun
2014-05-23  1:18                               ` Chen, Tiejun
2014-05-23  7:38                               ` [Qemu-devel] " Igor Mammedov
2014-05-23  7:38                                 ` Igor Mammedov
2014-05-23 10:52                                 ` [Qemu-devel] " Anthony PERARD
2014-05-23 10:52                                   ` Anthony PERARD
2014-05-23 11:40                                   ` [Qemu-devel] " Stefano Stabellini
2014-05-23 11:40                                     ` Stefano Stabellini
2014-05-23 11:53                                     ` [Qemu-devel] " Gerd Hoffmann
2014-05-23 11:53                                       ` Gerd Hoffmann
2014-05-23 12:06                                   ` [Qemu-devel] " Igor Mammedov
2014-05-23 12:06                                     ` Igor Mammedov
2014-05-23 12:16                                   ` [Qemu-devel] " Igor Mammedov
2014-05-23 12:16                                     ` Igor Mammedov
2014-05-22  9:58                   ` [Qemu-devel] " Konrad Rzeszutek Wilk
2014-05-22  9:58                     ` Konrad Rzeszutek Wilk
2014-05-20 14:45           ` [Qemu-devel] " Anthony PERARD
2014-05-20 14:45             ` Anthony PERARD
2014-05-21  1:25             ` [Qemu-devel] " Chen, Tiejun
2014-05-21  1:25               ` Chen, Tiejun
2014-06-25  2:49         ` [Qemu-devel] " Chen, Tiejun
2014-06-25  2:49           ` Chen, Tiejun
2014-06-25 23:04           ` [Qemu-devel] " Slutz, Donald Christopher
2014-06-25 23:04             ` Slutz, Donald Christopher
2014-06-26  2:00             ` [Qemu-devel] " Chen, Tiejun
2014-06-26  2:00               ` Chen, Tiejun
2014-06-26  8:23               ` [Qemu-devel] " Chen, Tiejun
2014-06-26  8:23                 ` Chen, Tiejun
2014-06-26 16:58                 ` [Qemu-devel] " Don Slutz
2014-06-26 16:58                   ` Don Slutz
2014-06-30  9:29                   ` [Qemu-devel] " Gerd Hoffmann
2014-06-30  9:29                     ` Gerd Hoffmann
2014-06-30 10:23                     ` [Qemu-devel] " Chen, Tiejun
2014-06-30 10:23                       ` Chen, Tiejun
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 5/8] xen, gfx passthrough: create intel isa bridge Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 14:11   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:11     ` Konrad Rzeszutek Wilk
2014-05-19  9:59     ` [Qemu-devel] " Chen, Tiejun
2014-05-19  9:59       ` Chen, Tiejun
2014-05-16 10:53 ` Tiejun Chen [this message]
2014-05-16 10:53   ` [v2][PATCH 6/8] xen, gfx passthrough: support Intel IGD passthrough with VT-D Tiejun Chen
2014-05-16 14:35   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:35     ` Konrad Rzeszutek Wilk
2014-05-19  0:58     ` [Qemu-devel] " Zhang, Yang Z
2014-05-19  0:58       ` Zhang, Yang Z
2014-05-19 13:34       ` [Qemu-devel] " Konrad Rzeszutek Wilk
2014-05-19 13:34         ` Konrad Rzeszutek Wilk
2014-05-20  5:13         ` [Qemu-devel] " Chen, Tiejun
2014-05-20  5:13           ` Chen, Tiejun
2014-05-20 13:39           ` [Qemu-devel] " Konrad Rzeszutek Wilk
2014-05-20 13:39             ` Konrad Rzeszutek Wilk
2014-05-19 10:02     ` [Qemu-devel] [Xen-devel] " Chen, Tiejun
2014-05-19 10:02       ` Chen, Tiejun
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 7/8] xen, gfx passthrough: create host bridge to passthrough Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-16 14:37   ` [Qemu-devel] [Xen-devel] " Konrad Rzeszutek Wilk
2014-05-16 14:37     ` Konrad Rzeszutek Wilk
2014-05-19 10:03     ` [Qemu-devel] " Chen, Tiejun
2014-05-19 10:03       ` Chen, Tiejun
2014-05-16 10:53 ` [Qemu-devel] [v2][PATCH 8/8] xen, gfx passthrough: add opregion mapping Tiejun Chen
2014-05-16 10:53   ` Tiejun Chen
2014-05-19 11:53   ` [Qemu-devel] " Stefano Stabellini
2014-05-19 11:53     ` Stefano Stabellini
2014-05-20  9:24     ` [Qemu-devel] " Chen, Tiejun
2014-05-20  9:24       ` Chen, Tiejun
2014-05-20 10:50       ` [Qemu-devel] " Stefano Stabellini
2014-05-20 10:50         ` Stefano Stabellini
2014-05-21  0:57         ` [Qemu-devel] " Chen, Tiejun
2014-05-21  0:57           ` Chen, Tiejun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1400237624-8505-7-git-send-email-tiejun.chen@intel.com \
    --to=tiejun.chen@intel.com \
    --cc=Kelly.Zytaruk@amd.com \
    --cc=allen.m.kay@intel.com \
    --cc=anthony.perard@citrix.com \
    --cc=anthony@codemonkey.ws \
    --cc=jean.guyader@eu.citrix.com \
    --cc=mst@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=weidong.han@intel.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=yang.z.zhang@Intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.