Hi Linus, Here''s a series of Xen core changes for 2.6.37. I pre-merged with your tree mainly this codes adds a call to reserve_early(), which needed to be updated to the memblock equivalent. I''ve also given you the reference to the unmerged branches. git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/xen Unmerged branches: git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/core git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/xenfs Thanks, J Ian Campbell (9): xen: add /proc/xen/xsd_{kva,port} to xenfs privcmd: MMAPBATCH: Fix error handling/reporting xen/privcmd: move remap_domain_mfn_range() to core xen code and export. xen: Use host-provided E820 map xen: ensure that all event channels start off bound to VCPU 0 xen: improvements to VIRQ_DEBUG output xen: correctly rebuild mfn list list after migration. xen: use host E820 map for dom0 xen: include xen/xen.h for definition of xen_initial_domain() Jeremy Fitzhardinge (34): xen: add xen_set_domain_pte() xen: add variable hypercall caller xen: add privcmd driver xen/privcmd: create address space to allow writable mmaps xen/xenfs: set_page_dirty is supposed to return true if it dirties xen/privcmd: print SIGBUS faults xen/privcmd: make sure vma is ours before doing anything to it xenbus: export xen_store_interface for xenfs xen/privcmd: make privcmd visible in domU x86: add RESERVE_BRK_ARRAY() helper xen: dynamically allocate p2m space xen: allocate p2m size based on actual max size xen: use early_brk for level2_kernel_pgt xen: allocate level1_ident_pgt xen: remove noise about registering vcpu info xen/events: change to using fasteoi xen: set shared_info->arch.max_pfn to max_p2m_pfn xen: set the actual extent of the mfn_list_list xen: make install_p2mtop_page() static xen: convert p2m to a 3 level tree xen: add return value to set_phys_to_machine() xen: defer building p2m mfn structures until kernel is mapped xen: don''t map missing memory xen: implement "extra" memory to reserve space for pages not present at boot xen: make sure xen_extra_mem_start is beyond all non-RAM e820 xen: add extra pages for E820 RAM regions, even if beyond mem_end xen: limit extra memory to a certain ratio of base xen: make sure xen_max_p2m_pfn is up to date xen: add support for PAT xen: don''t add extra_pages for RAM after mem_end xen/hvc: only notify if we actually sent something xen: set up IRQ before binding virq to evtchn Merge branch ''upstream/xenfs'' into upstream/xen Merge branch ''upstream/core'' into upstream/xen arch/x86/include/asm/xen/hypercall.h | 17 ++ arch/x86/include/asm/xen/page.h | 12 +- arch/x86/xen/Kconfig | 11 +- arch/x86/xen/enlighten.c | 16 +- arch/x86/xen/mmu.c | 501 ++++++++++++++++++++++++++++----- arch/x86/xen/mmu.h | 1 - arch/x86/xen/setup.c | 112 ++++++++- arch/x86/xen/xen-ops.h | 3 + drivers/char/hvc_xen.c | 3 +- drivers/xen/events.c | 101 +++++--- drivers/xen/xenbus/xenbus_probe.c | 4 +- drivers/xen/xenfs/Makefile | 3 +- drivers/xen/xenfs/privcmd.c | 404 +++++++++++++++++++++++++++ drivers/xen/xenfs/super.c | 95 ++++++- drivers/xen/xenfs/xenfs.h | 3 + drivers/xen/xenfs/xenstored.c | 68 +++++ include/xen/Kbuild | 1 + include/xen/interface/memory.h | 29 ++ include/xen/privcmd.h | 80 ++++++ include/xen/xen-ops.h | 5 + 20 files changed, 1332 insertions(+), 137 deletions(-) create mode 100644 drivers/xen/xenfs/privcmd.c create mode 100644 drivers/xen/xenfs/xenstored.c _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi Jeremy, Do these changes make it possible to get this kernel booted as dom0 on the hypervisor ? I allready understood that the backends/drivers needed to work with other domains miss, but i would like to try it when i can just boot it as dom0 and nothing else. So is this possible ? I don''t see a kernel config option to enable yet ? -- Sander Wednesday, October 27, 2010, 1:45:31 AM, you wrote:> Hi Linus,> Here''s a series of Xen core changes for 2.6.37. I pre-merged with your > tree mainly this codes adds a call to reserve_early(), which needed to > be updated to the memblock equivalent. I''ve also given you the > reference to the unmerged branches.> git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/xen> Unmerged branches: > git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/core > git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/xenfs> Thanks, > J> Ian Campbell (9): > xen: add /proc/xen/xsd_{kva,port} to xenfs > privcmd: MMAPBATCH: Fix error handling/reporting > xen/privcmd: move remap_domain_mfn_range() to core xen code and export. > xen: Use host-provided E820 map > xen: ensure that all event channels start off bound to VCPU 0 > xen: improvements to VIRQ_DEBUG output > xen: correctly rebuild mfn list list after migration. > xen: use host E820 map for dom0 > xen: include xen/xen.h for definition of xen_initial_domain()> Jeremy Fitzhardinge (34): > xen: add xen_set_domain_pte() > xen: add variable hypercall caller > xen: add privcmd driver > xen/privcmd: create address space to allow writable mmaps > xen/xenfs: set_page_dirty is supposed to return true if it dirties > xen/privcmd: print SIGBUS faults > xen/privcmd: make sure vma is ours before doing anything to it > xenbus: export xen_store_interface for xenfs > xen/privcmd: make privcmd visible in domU > x86: add RESERVE_BRK_ARRAY() helper > xen: dynamically allocate p2m space > xen: allocate p2m size based on actual max size > xen: use early_brk for level2_kernel_pgt > xen: allocate level1_ident_pgt > xen: remove noise about registering vcpu info > xen/events: change to using fasteoi > xen: set shared_info->arch.max_pfn to max_p2m_pfn > xen: set the actual extent of the mfn_list_list > xen: make install_p2mtop_page() static > xen: convert p2m to a 3 level tree > xen: add return value to set_phys_to_machine() > xen: defer building p2m mfn structures until kernel is mapped > xen: don''t map missing memory > xen: implement "extra" memory to reserve space for pages not present at boot > xen: make sure xen_extra_mem_start is beyond all non-RAM e820 > xen: add extra pages for E820 RAM regions, even if beyond mem_end > xen: limit extra memory to a certain ratio of base > xen: make sure xen_max_p2m_pfn is up to date > xen: add support for PAT > xen: don''t add extra_pages for RAM after mem_end > xen/hvc: only notify if we actually sent something > xen: set up IRQ before binding virq to evtchn > Merge branch ''upstream/xenfs'' into upstream/xen > Merge branch ''upstream/core'' into upstream/xen> arch/x86/include/asm/xen/hypercall.h | 17 ++ > arch/x86/include/asm/xen/page.h | 12 +- > arch/x86/xen/Kconfig | 11 +- > arch/x86/xen/enlighten.c | 16 +- > arch/x86/xen/mmu.c | 501 ++++++++++++++++++++++++++++----- > arch/x86/xen/mmu.h | 1 - > arch/x86/xen/setup.c | 112 ++++++++- > arch/x86/xen/xen-ops.h | 3 + > drivers/char/hvc_xen.c | 3 +- > drivers/xen/events.c | 101 +++++--- > drivers/xen/xenbus/xenbus_probe.c | 4 +- > drivers/xen/xenfs/Makefile | 3 +- > drivers/xen/xenfs/privcmd.c | 404 +++++++++++++++++++++++++++ > drivers/xen/xenfs/super.c | 95 ++++++- > drivers/xen/xenfs/xenfs.h | 3 + > drivers/xen/xenfs/xenstored.c | 68 +++++ > include/xen/Kbuild | 1 + > include/xen/interface/memory.h | 29 ++ > include/xen/privcmd.h | 80 ++++++ > include/xen/xen-ops.h | 5 + > 20 files changed, 1332 insertions(+), 137 deletions(-) > create mode 100644 drivers/xen/xenfs/privcmd.c > create mode 100644 drivers/xen/xenfs/xenstored.c-- Best regards, Sander mailto:linux@eikelenboom.it _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 2010-10-27 at 09:56 +0100, Sander Eikelenboom wrote:> > Do these changes make it possible to get this kernel booted as dom0 on > the hypervisor ?That is a separate branch, which was submitted upstream by Stefano yesterday, see <alpine.DEB.2.00.1010261207180.1407@kaball-desktop>. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Thx Ian, Pulling Stefano''s tree into that of Linus makes dom0 boot. Just wondering if msi(-x) intterupts are supposed to work, because it seems they don''t. If they do i will send all debug info. Thx, Sander Wednesday, October 27, 2010, 11:13:48 AM, you wrote:> On Wed, 2010-10-27 at 09:56 +0100, Sander Eikelenboom wrote: >> >> Do these changes make it possible to get this kernel booted as dom0 on >> the hypervisor ?> That is a separate branch, which was submitted upstream by Stefano > yesterday, see <alpine.DEB.2.00.1010261207180.1407@kaball-desktop>.> Ian.-- Best regards, Sander mailto:linux@eikelenboom.it _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 27 Oct 2010, Sander Eikelenboom wrote:> Thx Ian, > > Pulling Stefano''s tree into that of Linus makes dom0 boot. > Just wondering if msi(-x) intterupts are supposed to work, because it seems they don''t. > > If they do i will send all debug info. >yes, they are supposed to work _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi Stefano, About the msi(-x) interrupts: I have attached the output of: - Xen serial log - xm info - dmesg - lspci Dom0 kernel is latest Pull from Linus (commit 12ba8d1e9262ce81a695795410bd9ee5c9407ba1 which all ready includes pull from Jeremy) and pulled Stefano''s tree on top of that. For both eth0 and xhci controller it can''t enable msi(-x) Apart from this there also seems to be an issue around the following bios option enabled: Intel(R) C-STATE tech (CPU idle is set to C2/C3/C4) Resulting in a very slow booting dom0 kernel, SATA controller reporting problems, eth0 and console not responsive. Which is not the case when i disable these bios options. I haven''t got this problem when i use Jeremy''s 2.6.32 trees. And the SATA controller reporting problems give me a deja-vu with the first 2.6.31/32 pvops kernels which caused the same. Booting xen with ''max_cstate=0'' doesn''t seem to fix it. With this bios options disabled it seems to boot fine. -- Sander Wednesday, October 27, 2010, 12:42:39 PM, you wrote:> On Wed, 27 Oct 2010, Sander Eikelenboom wrote: >> Thx Ian, >> >> Pulling Stefano''s tree into that of Linus makes dom0 boot. >> Just wondering if msi(-x) intterupts are supposed to work, because it seems they don''t. >> >> If they do i will send all debug info. >>> yes, they are supposed to work-- Best regards, Sander mailto:linux@eikelenboom.it _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 27 Oct 2010, Sander Eikelenboom wrote:> Hi Stefano, > > About the msi(-x) interrupts: > > I have attached the output of: > > - Xen serial log > - xm info > - dmesg > - lspci > > Dom0 kernel is latest Pull from Linus (commit 12ba8d1e9262ce81a695795410bd9ee5c9407ba1 which all ready includes pull from Jeremy) and pulled Stefano''s tree on top of that. > For both eth0 and xhci controller it can''t enable msi(-x)can you please try this new branch? git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 2.6.36-rc8-initial-domain-v8 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 27 Oct 2010, Stefano Stabellini wrote:> On Wed, 27 Oct 2010, Sander Eikelenboom wrote: > > Hi Stefano, > > > > About the msi(-x) interrupts: > > > > I have attached the output of: > > > > - Xen serial log > > - xm info > > - dmesg > > - lspci > > > > Dom0 kernel is latest Pull from Linus (commit 12ba8d1e9262ce81a695795410bd9ee5c9407ba1 which all ready includes pull from Jeremy) and pulled Stefano''s tree on top of that. > > For both eth0 and xhci controller it can''t enable msi(-x) > > can you please try this new branch? > > git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 2.6.36-rc8-initial-domain-v8 >I should add that the problem was that I forgot to include drivers/xen/pci.c in my series (I was using an old testbox with no msis). This is the commit that fixes it, it is the result of few commits on Jeremy''s pvops tree squashed together a cleaned up a bit. --- commit 8cd3c8d3c59c3d349c91108a8b0016c5a6aaf46d Author: Weidong Han <weidong.han@intel.com> Date: Wed Oct 27 17:55:04 2010 +0100 xen: register xen pci notifier Register the notifier to handle hot-plug devices and SR-IOV devices for Xen hypervisor. When a device is hot added or removed, it adds or removes it to Xen via hypercalls. Signed-off-by: Weidong Han <weidong.han@intel.com> Signed-off-by: Qing He <qing.he@intel.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile index b978645..a572a45 100644 --- a/drivers/xen/Makefile +++ b/drivers/xen/Makefile @@ -13,3 +13,4 @@ obj-$(CONFIG_XENFS) += xenfs/ obj-$(CONFIG_XEN_SYS_HYPERVISOR) += sys-hypervisor.o obj-$(CONFIG_XEN_PLATFORM_PCI) += platform-pci.o obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o +obj-$(CONFIG_PCI) += pci.o diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c new file mode 100644 index 0000000..7701741 --- /dev/null +++ b/drivers/xen/pci.c @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2009, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Author: Weidong Han <weidong.han@intel.com> + */ + +#include <linux/pci.h> +#include <xen/interface/physdev.h> +#include <xen/interface/xen.h> + +#include <asm/xen/hypervisor.h> +#include <asm/xen/hypercall.h> +#include "../pci/pci.h" + +static int xen_add_device(struct device *dev) +{ + int r; + struct pci_dev *pci_dev = to_pci_dev(dev); + +#ifdef CONFIG_PCI_IOV + if (pci_dev->is_virtfn) { + struct physdev_manage_pci_ext manage_pci_ext = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + .is_virtfn = 1, + .physfn.bus = pci_dev->physfn->bus->number, + .physfn.devfn = pci_dev->physfn->devfn, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add_ext, + &manage_pci_ext); + } else +#endif + if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn)) { + struct physdev_manage_pci_ext manage_pci_ext = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + .is_extfn = 1, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add_ext, + &manage_pci_ext); + } else { + struct physdev_manage_pci manage_pci = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add, + &manage_pci); + } + + return r; +} + +static int xen_remove_device(struct device *dev) +{ + int r; + struct pci_dev *pci_dev = to_pci_dev(dev); + struct physdev_manage_pci manage_pci; + + manage_pci.bus = pci_dev->bus->number; + manage_pci.devfn = pci_dev->devfn; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_remove, + &manage_pci); + + return r; +} + +static int xen_pci_notifier(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct device *dev = data; + int r = 0; + + switch (action) { + case BUS_NOTIFY_ADD_DEVICE: + r = xen_add_device(dev); + break; + case BUS_NOTIFY_DEL_DEVICE: + r = xen_remove_device(dev); + break; + default: + break; + } + + return r; +} + +struct notifier_block device_nb = { + .notifier_call = xen_pci_notifier, +}; + +static int __init register_xen_pci_notifier(void) +{ + if (!xen_pv_domain()) + return 0; + + return bus_register_notifier(&pci_bus_type, &device_nb); +} + +arch_initcall(register_xen_pci_notifier); diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h index a85d76c..2b2c66c 100644 --- a/include/xen/interface/physdev.h +++ b/include/xen/interface/physdev.h @@ -136,6 +136,27 @@ struct physdev_unmap_pirq { int pirq; }; +#define PHYSDEVOP_manage_pci_add 15 +#define PHYSDEVOP_manage_pci_remove 16 +struct physdev_manage_pci { + /* IN */ + uint8_t bus; + uint8_t devfn; +}; + +#define PHYSDEVOP_manage_pci_add_ext 20 +struct physdev_manage_pci_ext { + /* IN */ + uint8_t bus; + uint8_t devfn; + unsigned is_extfn; + unsigned is_virtfn; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; +}; + /* * Argument to physdev_op_compat() hypercall. Superceded by new physdev_op() * hypercall since 0x00030202. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 27 Oct 2010, Stefano Stabellini wrote:> commit 8cd3c8d3c59c3d349c91108a8b0016c5a6aaf46d > Author: Weidong Han <weidong.han@intel.com> > Date: Wed Oct 27 17:55:04 2010 +0100 > > xen: register xen pci notifier > > Register the notifier to handle hot-plug devices and SR-IOV devices > for Xen hypervisor. When a device is hot added or removed, it adds > or removes it to Xen via hypercalls. > > Signed-off-by: Weidong Han <weidong.han@intel.com> > Signed-off-by: Qing He <qing.he@intel.com> > Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> >I realize that the description of the commit is out of date so I wrote a new one: --- commit d5940db0f915c3e045fe18a60a2ef2145bf85b1c Author: Weidong Han <weidong.han@intel.com> Date: Wed Oct 27 17:55:04 2010 +0100 xen: register xen pci notifier Register a pci notifier to add (or remove) pci devices to Xen via hypercalls. Xen needs to know the pci devices present in the system to handle pci passthrough and even MSI remapping in the initial domain. Signed-off-by: Weidong Han <weidong.han@intel.com> Signed-off-by: Qing He <qing.he@intel.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile index b978645..a572a45 100644 --- a/drivers/xen/Makefile +++ b/drivers/xen/Makefile @@ -13,3 +13,4 @@ obj-$(CONFIG_XENFS) += xenfs/ obj-$(CONFIG_XEN_SYS_HYPERVISOR) += sys-hypervisor.o obj-$(CONFIG_XEN_PLATFORM_PCI) += platform-pci.o obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o +obj-$(CONFIG_PCI) += pci.o diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c new file mode 100644 index 0000000..7701741 --- /dev/null +++ b/drivers/xen/pci.c @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2009, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * Author: Weidong Han <weidong.han@intel.com> + */ + +#include <linux/pci.h> +#include <xen/interface/physdev.h> +#include <xen/interface/xen.h> + +#include <asm/xen/hypervisor.h> +#include <asm/xen/hypercall.h> +#include "../pci/pci.h" + +static int xen_add_device(struct device *dev) +{ + int r; + struct pci_dev *pci_dev = to_pci_dev(dev); + +#ifdef CONFIG_PCI_IOV + if (pci_dev->is_virtfn) { + struct physdev_manage_pci_ext manage_pci_ext = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + .is_virtfn = 1, + .physfn.bus = pci_dev->physfn->bus->number, + .physfn.devfn = pci_dev->physfn->devfn, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add_ext, + &manage_pci_ext); + } else +#endif + if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn)) { + struct physdev_manage_pci_ext manage_pci_ext = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + .is_extfn = 1, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add_ext, + &manage_pci_ext); + } else { + struct physdev_manage_pci manage_pci = { + .bus = pci_dev->bus->number, + .devfn = pci_dev->devfn, + }; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_add, + &manage_pci); + } + + return r; +} + +static int xen_remove_device(struct device *dev) +{ + int r; + struct pci_dev *pci_dev = to_pci_dev(dev); + struct physdev_manage_pci manage_pci; + + manage_pci.bus = pci_dev->bus->number; + manage_pci.devfn = pci_dev->devfn; + + r = HYPERVISOR_physdev_op(PHYSDEVOP_manage_pci_remove, + &manage_pci); + + return r; +} + +static int xen_pci_notifier(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct device *dev = data; + int r = 0; + + switch (action) { + case BUS_NOTIFY_ADD_DEVICE: + r = xen_add_device(dev); + break; + case BUS_NOTIFY_DEL_DEVICE: + r = xen_remove_device(dev); + break; + default: + break; + } + + return r; +} + +struct notifier_block device_nb = { + .notifier_call = xen_pci_notifier, +}; + +static int __init register_xen_pci_notifier(void) +{ + if (!xen_pv_domain()) + return 0; + + return bus_register_notifier(&pci_bus_type, &device_nb); +} + +arch_initcall(register_xen_pci_notifier); diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h index a85d76c..2b2c66c 100644 --- a/include/xen/interface/physdev.h +++ b/include/xen/interface/physdev.h @@ -136,6 +136,27 @@ struct physdev_unmap_pirq { int pirq; }; +#define PHYSDEVOP_manage_pci_add 15 +#define PHYSDEVOP_manage_pci_remove 16 +struct physdev_manage_pci { + /* IN */ + uint8_t bus; + uint8_t devfn; +}; + +#define PHYSDEVOP_manage_pci_add_ext 20 +struct physdev_manage_pci_ext { + /* IN */ + uint8_t bus; + uint8_t devfn; + unsigned is_extfn; + unsigned is_virtfn; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; +}; + /* * Argument to physdev_op_compat() hypercall. Superceded by new physdev_op() * hypercall since 0x00030202. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wednesday, October 27, 2010, 7:15:30 PM, you wrote:> On Wed, 27 Oct 2010, Sander Eikelenboom wrote: >> Hi Stefano, >> >> About the msi(-x) interrupts: >> >> I have attached the output of: >> >> - Xen serial log >> - xm info >> - dmesg >> - lspci >> >> Dom0 kernel is latest Pull from Linus (commit 12ba8d1e9262ce81a695795410bd9ee5c9407ba1 which all ready includes pull from Jeremy) and pulled Stefano''s tree on top of that. >> For both eth0 and xhci controller it can''t enable msi(-x)> can you please try this new branch?> git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 2.6.36-rc8-initial-domain-v8Yes this enables the msi(-x) interrupts ! Thanks I will give the problem with the bios option another try as well. What i was wondering .. though .. Devices using normal interrupts generally get a low IRQ number Devices with MSI a higher, but MSI-X seem to get a low IRQ number as well, is this expected ? (for example device 02:00.0) 00:00.0 Host bridge [0600]: Intel Corporation 4 Series Chipset DRAM Controller [8086:2e10] (rev 03) Subsystem: ASUSTeK Computer Inc. Device [1043:82d3] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 0 Capabilities: [e0] Vendor Specific Information <?> Kernel driver in use: agpgart-intel 00:02.0 VGA compatible controller [0300]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e12] (rev 03) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d3] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 1001 Region 0: Memory at fe400000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at dc00 [size=8] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+ Address: fee0100c Data: 4129 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a4] PCIe advanced features <?> Kernel driver in use: i915 00:02.1 Display controller [0380]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e13] (rev 03) Subsystem: ASUSTeK Computer Inc. Device [1043:82d3] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Region 0: Memory at fe900000 (64-bit, non-prefetchable) [size=1M] Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:03.0 Communication controller [0780]: Intel Corporation 4 Series Chipset HECI Controller [8086:2e14] (rev 03) Subsystem: ASUSTeK Computer Inc. Device [1043:82d3] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 11 Region 0: Memory at fe8fb000 (64-bit, non-prefetchable) [size=16] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [8c] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000 00:19.0 Ethernet controller [0200]: Intel Corporation 82567LM-3 Gigabit Network Connection [8086:10de] (rev 02) Subsystem: Intel Corporation Device [8086:0000] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 992 Region 0: Memory at fe8c0000 (32-bit, non-prefetchable) [size=128K] Region 1: Memory at fe8fa000 (32-bit, non-prefetchable) [size=4K] Region 2: I/O ports at d880 [size=32] Capabilities: [c8] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=1 PME- Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+ Address: 00000000fee0100c Data: 41a1 Capabilities: [e0] Vendor Specific Information <?> Kernel driver in use: e1000e 00:1a.0 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #4 [8086:3a67] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 16 Region 4: I/O ports at d400 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1a.1 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #5 [8086:3a68] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 21 Region 4: I/O ports at d480 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1a.2 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #6 [8086:3a69] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 18 Region 4: I/O ports at d800 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1a.7 USB Controller [0c03]: Intel Corporation ICH10 USB2 EHCI Controller #2 [8086:3a6c] (rev 02) (prog-if 20 [EHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 18 Region 0: Memory at fe8f9000 (32-bit, non-prefetchable) [size=1K] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Debug port: BAR=1 offset=00a0 Capabilities: [98] Vendor Specific Information <?> Kernel driver in use: ehci_hcd 00:1c.0 PCI bridge [0604]: Intel Corporation ICH10 PCI Express Port 1 [8086:3a70] (rev 02) (prog-if 00 [Normal decode]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 I/O behind bridge: 0000f000-00000fff Memory behind bridge: fff00000-000fffff Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us ClockPM- Suprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surpise- Slot # 0, PowerLimit 10.000000; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100] Virtual Channel <?> Capabilities: [180] Root Complex Link <?> 00:1c.1 PCI bridge [0604]: Intel Corporation ICH10 PCI Express Port 2 [8086:3a72] (rev 02) (prog-if 00 [Normal decode]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 I/O behind bridge: 0000f000-00000fff Memory behind bridge: feb00000-febfffff Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us ClockPM- Suprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surpise- Slot # 0, PowerLimit 10.000000; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100] Virtual Channel <?> Capabilities: [180] Root Complex Link <?> 00:1c.4 PCI bridge [0604]: Intel Corporation ICH10 PCI Express Port 5 [8086:3a78] (rev 02) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 0000e000-0000efff Memory behind bridge: fea00000-feafffff Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #5, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us ClockPM- Suprise- LLActRep+ BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surpise- Slot # 0, PowerLimit 10.000000; Interlock- NoCompl+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- Changed: MRL- PresDet+ LinkState+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Address: 00000000 Data: 0000 Capabilities: [90] Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Capabilities: [a0] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100] Virtual Channel <?> Capabilities: [180] Root Complex Link <?> 00:1d.0 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #1 [8086:3a64] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 23 Region 4: I/O ports at cc00 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1d.1 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #2 [8086:3a65] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 19 Region 4: I/O ports at d000 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1d.2 USB Controller [0c03]: Intel Corporation ICH10 USB UHCI Controller #3 [8086:3a66] (rev 02) (prog-if 00 [UHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 18 Region 4: I/O ports at d080 [size=32] Capabilities: [50] Vendor Specific Information <?> Kernel driver in use: uhci_hcd 00:1d.7 USB Controller [0c03]: Intel Corporation ICH10 USB2 EHCI Controller #1 [8086:3a6a] (rev 02) (prog-if 20 [EHCI]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 23 Region 0: Memory at fe8f8000 (32-bit, non-prefetchable) [size=1K] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Debug port: BAR=1 offset=00a0 Capabilities: [98] Vendor Specific Information <?> Kernel driver in use: ehci_hcd 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev a2) (prog-if 01 [Subtractive decode]) Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Bus: primary=00, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: 0000f000-00000fff Memory behind bridge: fff00000-000fffff Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR- BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [50] Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] 00:1f.0 ISA bridge [0601]: Intel Corporation ICH10 LPC Interface Controller [8086:3a14] (rev 02) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Capabilities: [e0] Vendor Specific Information <?> 00:1f.2 SATA controller [0106]: Intel Corporation ICH10 6 port SATA AHCI Controller [8086:3a02] (rev 02) (prog-if 01 [AHCI 1.0]) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin B routed to IRQ 1000 Region 0: I/O ports at c800 [size=8] Region 1: I/O ports at c480 [size=4] Region 2: I/O ports at c400 [size=8] Region 3: I/O ports at c080 [size=4] Region 4: I/O ports at c000 [size=32] Region 5: Memory at fe8f2000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/3 Enable+ Address: fee0100c Data: 4139 Capabilities: [70] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a8] SATA HBA <?> Capabilities: [b0] Vendor Specific Information <?> Kernel driver in use: ahci 00:1f.3 SMBus [0c05]: Intel Corporation ICH10 SMBus Controller [8086:3a60] (rev 02) Subsystem: ASUSTeK Computer Inc. Device [1043:82d4] Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin C routed to IRQ 18 Region 0: Memory at fe8f3000 (64-bit, non-prefetchable) [size=256] Region 4: I/O ports at 0400 [size=32] 01:00.0 IDE interface [0101]: Marvell Technology Group Ltd. 88SE6101 single-port PATA133 interface [11ab:6101] (rev b2) (prog-if 8f [Master SecP SecO PriP PriO]) Subsystem: ASUSTeK Computer Inc. Device [1043:82e0] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at ec00 [size=8] Region 1: I/O ports at e880 [size=4] Region 2: I/O ports at e800 [size=8] Region 3: I/O ports at e480 [size=4] Region 4: I/O ports at e400 [size=16] Region 5: Memory at feaff000 (32-bit, non-prefetchable) [size=512] Capabilities: [48] Power Management version 2 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=1 PME- Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Address: 00000000 Data: 0000 Capabilities: [e0] Express (v1) Legacy Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 <256ns, L1 unlimited ClockPM- Suprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- Capabilities: [100] Advanced Error Reporting <?> 02:00.0 USB Controller [0c03]: NEC Corporation Device [1033:0194] (rev 03) (prog-if 30) Subsystem: Micro-Star International Co., Ltd. Device [1462:4257] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at febfe000 (64-bit, non-prefetchable) [size=8K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] Message Signalled Interrupts: Mask- 64bit+ Queue=0/3 Enable- Address: 0000000000000000 Data: 0000 Capabilities: [90] MSI-X: Enable+ Mask- TabSize=8 Vector table: BAR=0 offset=00001000 PBA: BAR=0 offset=00001080 Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited ClockPM+ Suprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- Capabilities: [100] Advanced Error Reporting <?> Capabilities: [140] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff Capabilities: [150] #18 Kernel driver in use: xhci_hcd _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 10/27/2010 12:22 PM, Sander Eikelenboom wrote:> Yes this enables the msi(-x) interrupts ! Thanks > I will give the problem with the bios option another try as well. > > What i was wondering .. though .. > Devices using normal interrupts generally get a low IRQ number > Devices with MSI a higher, but MSI-X seem to get a low IRQ number as well, is this expected ?I think that''s showing you what gsi you would get if you weren''t using msi. What does /proc/interrupts show? J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wednesday, October 27, 2010, 9:29:32 PM, you wrote:> On 10/27/2010 12:22 PM, Sander Eikelenboom wrote: >> Yes this enables the msi(-x) interrupts ! Thanks >> I will give the problem with the bios option another try as well. >> >> What i was wondering .. though .. >> Devices using normal interrupts generally get a low IRQ number >> Devices with MSI a higher, but MSI-X seem to get a low IRQ number as well, is this expected ?> I think that''s showing you what gsi you would get if you weren''t using > msi. What does /proc/interrupts show?> JAh ok you are (of course) completely right thx ! What strikes me now .. is that when i used this xhci controller passed through to a domU i: a) saw only one IRQ/vector coupled to xhci_hcd in the /proc/interrupts b) i don''t see them being counted now in the dom0 although i use the controller (i the domU this caused +/- 8000 interrupts a second .. so i should be seeing something else the 0 i assume. -- Sander CPU0 CPU1 CPU2 CPU3 1: 8 0 0 0 xen-pirq-ioapic-edge i8042 8: 0 0 0 0 xen-pirq-ioapic-edge rtc0 9: 0 0 0 0 xen-pirq-ioapic-level acpi 12: 103 0 0 0 xen-pirq-ioapic-edge i8042 16: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb3 18: 0 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8 19: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb7 21: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb4 23: 73410 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb2, uhci_hcd:usb6 990: 0 0 0 0 xen-dyn-event evtchn:xenstored 991: 188 0 0 0 xen-dyn-event evtchn:xenstored 992: 10583 0 0 0 xen-pirq-msi eth1 993: 1 0 0 0 xen-pirq-msi 994: 0 0 0 0 xen-pirq-msi-x xhci_hcd 995: 0 0 0 0 xen-pirq-msi-x xhci_hcd 996: 0 0 0 0 xen-pirq-msi-x xhci_hcd 997: 0 0 0 0 xen-pirq-msi-x xhci_hcd 998: 1 0 0 0 xen-pirq-msi-x xhci_hcd 1000: 51648 0 0 0 xen-pirq-msi ahci 1001: 1 0 0 0 xen-pirq-msi i915 1002: 0 0 0 0 xen-percpu-virq hvc_console 1003: 133 0 0 0 xen-dyn-event xenbus 1004: 0 0 0 15729 xen-percpu-ipi callfuncsingle3 1005: 0 0 0 0 xen-percpu-virq debug3 1006: 0 0 0 538 xen-percpu-ipi callfunc3 1007: 0 0 0 24048 xen-percpu-ipi resched3 1008: 0 0 0 525075 xen-percpu-virq timer3 1009: 0 0 19569 0 xen-percpu-ipi callfuncsingle2 1010: 0 0 0 0 xen-percpu-virq debug2 1011: 0 0 451 0 xen-percpu-ipi callfunc2 1012: 0 0 23590 0 xen-percpu-ipi resched2 1013: 0 0 523891 0 xen-percpu-virq timer2 1014: 0 13911 0 0 xen-percpu-ipi callfuncsingle1 1015: 0 0 0 0 xen-percpu-virq debug1 1016: 0 563 0 0 xen-percpu-ipi callfunc1 1017: 0 22079 0 0 xen-percpu-ipi resched1 1018: 0 519767 0 0 xen-percpu-virq timer1 1019: 1445 0 0 0 xen-percpu-ipi callfuncsingle0 1020: 0 0 0 0 xen-percpu-virq debug0 1021: 395 0 0 0 xen-percpu-ipi callfunc0 1022: 22182 0 0 0 xen-percpu-ipi resched0 1023: 583133 0 0 0 xen-percpu-virq timer0 NMI: 0 0 0 0 Non-maskable interrupts LOC: 0 0 0 0 Local timer interrupts SPU: 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 Performance monitoring interrupts IWI: 0 0 0 0 IRQ work interrupts RES: 22182 22079 23590 24048 Rescheduling interrupts CAL: 1840 14474 20020 16268 Function call interrupts TLB: 0 0 0 0 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 Machine check exceptions MCP: 0 0 0 0 Machine check polls ERR: 0 MIS: 0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 10/27/2010 12:40 PM, Sander Eikelenboom wrote:> Ah ok you are (of course) completely right thx ! > What strikes me now .. is that when i used this xhci controller passed through to a domU i: > a) saw only one IRQ/vector coupled to xhci_hcd in the /proc/interrupts > b) i don''t see them being counted now in the dom0 although i use the controller (i the domU this caused +/- 8000 interrupts a second .. so i should be seeing something else the 0 i assume.The device is working but you''re not seeing any interrupts for it? Strange. J> -- > Sander > > > CPU0 CPU1 CPU2 CPU3 > 1: 8 0 0 0 xen-pirq-ioapic-edge i8042 > 8: 0 0 0 0 xen-pirq-ioapic-edge rtc0 > 9: 0 0 0 0 xen-pirq-ioapic-level acpi > 12: 103 0 0 0 xen-pirq-ioapic-edge i8042 > 16: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb3 > 18: 0 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8 > 19: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb7 > 21: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb4 > 23: 73410 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb2, uhci_hcd:usb6 > 990: 0 0 0 0 xen-dyn-event evtchn:xenstored > 991: 188 0 0 0 xen-dyn-event evtchn:xenstored > 992: 10583 0 0 0 xen-pirq-msi eth1 > 993: 1 0 0 0 xen-pirq-msi > 994: 0 0 0 0 xen-pirq-msi-x xhci_hcd > 995: 0 0 0 0 xen-pirq-msi-x xhci_hcd > 996: 0 0 0 0 xen-pirq-msi-x xhci_hcd > 997: 0 0 0 0 xen-pirq-msi-x xhci_hcd > 998: 1 0 0 0 xen-pirq-msi-x xhci_hcd > 1000: 51648 0 0 0 xen-pirq-msi ahci > 1001: 1 0 0 0 xen-pirq-msi i915 > 1002: 0 0 0 0 xen-percpu-virq hvc_console > 1003: 133 0 0 0 xen-dyn-event xenbus > 1004: 0 0 0 15729 xen-percpu-ipi callfuncsingle3 > 1005: 0 0 0 0 xen-percpu-virq debug3 > 1006: 0 0 0 538 xen-percpu-ipi callfunc3 > 1007: 0 0 0 24048 xen-percpu-ipi resched3 > 1008: 0 0 0 525075 xen-percpu-virq timer3 > 1009: 0 0 19569 0 xen-percpu-ipi callfuncsingle2 > 1010: 0 0 0 0 xen-percpu-virq debug2 > 1011: 0 0 451 0 xen-percpu-ipi callfunc2 > 1012: 0 0 23590 0 xen-percpu-ipi resched2 > 1013: 0 0 523891 0 xen-percpu-virq timer2 > 1014: 0 13911 0 0 xen-percpu-ipi callfuncsingle1 > 1015: 0 0 0 0 xen-percpu-virq debug1 > 1016: 0 563 0 0 xen-percpu-ipi callfunc1 > 1017: 0 22079 0 0 xen-percpu-ipi resched1 > 1018: 0 519767 0 0 xen-percpu-virq timer1 > 1019: 1445 0 0 0 xen-percpu-ipi callfuncsingle0 > 1020: 0 0 0 0 xen-percpu-virq debug0 > 1021: 395 0 0 0 xen-percpu-ipi callfunc0 > 1022: 22182 0 0 0 xen-percpu-ipi resched0 > 1023: 583133 0 0 0 xen-percpu-virq timer0 > NMI: 0 0 0 0 Non-maskable interrupts > LOC: 0 0 0 0 Local timer interrupts > SPU: 0 0 0 0 Spurious interrupts > PMI: 0 0 0 0 Performance monitoring interrupts > IWI: 0 0 0 0 IRQ work interrupts > RES: 22182 22079 23590 24048 Rescheduling interrupts > CAL: 1840 14474 20020 16268 Function call interrupts > TLB: 0 0 0 0 TLB shootdowns > TRM: 0 0 0 0 Thermal event interrupts > THR: 0 0 0 0 Threshold APIC interrupts > MCE: 0 0 0 0 Machine check exceptions > MCP: 0 0 0 0 Machine check polls > ERR: 0 > MIS: 0 > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Wednesday, October 27, 2010, 10:05:47 PM, you wrote:> On 10/27/2010 12:40 PM, Sander Eikelenboom wrote: >> Ah ok you are (of course) completely right thx ! >> What strikes me now .. is that when i used this xhci controller passed through to a domU i: >> a) saw only one IRQ/vector coupled to xhci_hcd in the /proc/interrupts >> b) i don''t see them being counted now in the dom0 although i use the controller (i the domU this caused +/- 8000 interrupts a second .. so i should be seeing something else the 0 i assume.> The device is working but you''re not seeing any interrupts for it? Strange.> JGrmbll sorry my mistake, early this day i shoved it in a USB2 port, to see if a problem with the driver of the videograbber had any relation to usb2/usb3 controller. But it didn''t and was allready fixed. Shoved it back in on the xhci controller and it counts fine now ... Sorry for the noise ! And congratulations to you all on achieving this !! Can''t wait for pciback support :-) -- Sander>> -- >> Sander >> >> >> CPU0 CPU1 CPU2 CPU3 >> 1: 8 0 0 0 xen-pirq-ioapic-edge i8042 >> 8: 0 0 0 0 xen-pirq-ioapic-edge rtc0 >> 9: 0 0 0 0 xen-pirq-ioapic-level acpi >> 12: 103 0 0 0 xen-pirq-ioapic-edge i8042 >> 16: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb3 >> 18: 0 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8 >> 19: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb7 >> 21: 0 0 0 0 xen-pirq-ioapic-level uhci_hcd:usb4 >> 23: 73410 0 0 0 xen-pirq-ioapic-level ehci_hcd:usb2, uhci_hcd:usb6 >> 990: 0 0 0 0 xen-dyn-event evtchn:xenstored >> 991: 188 0 0 0 xen-dyn-event evtchn:xenstored >> 992: 10583 0 0 0 xen-pirq-msi eth1 >> 993: 1 0 0 0 xen-pirq-msi >> 994: 0 0 0 0 xen-pirq-msi-x xhci_hcd >> 995: 0 0 0 0 xen-pirq-msi-x xhci_hcd >> 996: 0 0 0 0 xen-pirq-msi-x xhci_hcd >> 997: 0 0 0 0 xen-pirq-msi-x xhci_hcd >> 998: 1 0 0 0 xen-pirq-msi-x xhci_hcd >> 1000: 51648 0 0 0 xen-pirq-msi ahci >> 1001: 1 0 0 0 xen-pirq-msi i915 >> 1002: 0 0 0 0 xen-percpu-virq hvc_console >> 1003: 133 0 0 0 xen-dyn-event xenbus >> 1004: 0 0 0 15729 xen-percpu-ipi callfuncsingle3 >> 1005: 0 0 0 0 xen-percpu-virq debug3 >> 1006: 0 0 0 538 xen-percpu-ipi callfunc3 >> 1007: 0 0 0 24048 xen-percpu-ipi resched3 >> 1008: 0 0 0 525075 xen-percpu-virq timer3 >> 1009: 0 0 19569 0 xen-percpu-ipi callfuncsingle2 >> 1010: 0 0 0 0 xen-percpu-virq debug2 >> 1011: 0 0 451 0 xen-percpu-ipi callfunc2 >> 1012: 0 0 23590 0 xen-percpu-ipi resched2 >> 1013: 0 0 523891 0 xen-percpu-virq timer2 >> 1014: 0 13911 0 0 xen-percpu-ipi callfuncsingle1 >> 1015: 0 0 0 0 xen-percpu-virq debug1 >> 1016: 0 563 0 0 xen-percpu-ipi callfunc1 >> 1017: 0 22079 0 0 xen-percpu-ipi resched1 >> 1018: 0 519767 0 0 xen-percpu-virq timer1 >> 1019: 1445 0 0 0 xen-percpu-ipi callfuncsingle0 >> 1020: 0 0 0 0 xen-percpu-virq debug0 >> 1021: 395 0 0 0 xen-percpu-ipi callfunc0 >> 1022: 22182 0 0 0 xen-percpu-ipi resched0 >> 1023: 583133 0 0 0 xen-percpu-virq timer0 >> NMI: 0 0 0 0 Non-maskable interrupts >> LOC: 0 0 0 0 Local timer interrupts >> SPU: 0 0 0 0 Spurious interrupts >> PMI: 0 0 0 0 Performance monitoring interrupts >> IWI: 0 0 0 0 IRQ work interrupts >> RES: 22182 22079 23590 24048 Rescheduling interrupts >> CAL: 1840 14474 20020 16268 Function call interrupts >> TLB: 0 0 0 0 TLB shootdowns >> TRM: 0 0 0 0 Thermal event interrupts >> THR: 0 0 0 0 Threshold APIC interrupts >> MCE: 0 0 0 0 Machine check exceptions >> MCP: 0 0 0 0 Machine check polls >> ERR: 0 >> MIS: 0 >> >>-- Best regards, Sander mailto:linux@eikelenboom.it _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi Linus, Some more Xen-related bugfixes, including: * Xen evtchn driver fixes, including fixing some locking fixes, and giving it a more standard name * Xen xenfs updates, including removing a bogus address space (when really we needed VM_PFNMAP) and fixing the prototype for mount * fix 32-on-64 dom0 booting, and make sure IO port permissions are enabled early to fix booting on AMD systems * make sure the balloon driver only claims E820_RAM pages Available at: git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git upstream/for-linus Bastian Blank (1): xen/evtchn: Fix name of Xen event-channel device Ian Campbell (2): xen: implement XENMEM_machphys_mapping xen: make evtchn''s name less generic Jan Beulich (1): xen/evtchn: clear secondary CPUs'' cpu_evtchn_mask[] after restore Jeremy Fitzhardinge (17): xen/evtchn: track enabled state for each port xen/evtchn: dynamically allocate port_user array xen/evtchn: ports start enabled xen/evtchn: remove spurious barrier xen/evtchn: don''t do unbind_from_irqhandler under spinlock xen/evtchn: add missing static Merge commit ''v2.6.37-rc2'' into upstream/xenfs xen/xenfs: update xenfs_mount for new prototype xen/events: use locked set|clear_bit() for cpu_evtchn_mask Revert "xen/privcmd: create address space to allow writable mmaps" xen/evtchn: the evtchn device is non-seekable Merge branch ''xen/dev-evtchn'' into upstream/evtchn xen: add extra pages to balloon xen/balloon: the balloon_lock is useless xen/balloon: make sure we only include remaining extra ram xen: re-enable boot-time ballooning Merge branches ''upstream/core'', ''upstream/xenfs'' and ''upstream/evtchn'' into upstream/for-linus Konrad Rzeszutek Wilk (2): xen: set IO permission early (before early_cpu_init()) xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs. Randy Dunlap (1): xen: fix header export to userspace Stefano Stabellini (1): xen: set vma flag VM_PFNMAP in the privcmd mmap file_op Vasiliy Kulikov (1): xen: xenfs: privcmd: check put_user() return code arch/x86/include/asm/xen/interface.h | 6 +- arch/x86/include/asm/xen/interface_32.h | 5 ++ arch/x86/include/asm/xen/interface_64.h | 13 +---- arch/x86/include/asm/xen/page.h | 7 +- arch/x86/xen/enlighten.c | 19 ++++++- arch/x86/xen/mmu.c | 17 +++++- arch/x86/xen/setup.c | 11 +--- drivers/xen/Makefile | 5 +- drivers/xen/balloon.c | 32 +++++----- drivers/xen/events.c | 13 +++-- drivers/xen/evtchn.c | 100 +++++++++++++++++++++++------- drivers/xen/xenfs/privcmd.c | 13 ++--- drivers/xen/xenfs/super.c | 46 ++------------ include/xen/interface/memory.h | 13 ++++ include/xen/page.h | 7 ++ include/xen/privcmd.h | 5 +- 16 files changed, 186 insertions(+), 126 deletions(-) Thanks, J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel