]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/log
legacy/linux-2.6.18-xen.git
15 years agoUpdate sfc_netback driver to match sfc_resource 3.0.2.2074
Keir Fraser [Fri, 8 Jan 2010 13:07:17 +0000 (13:07 +0000)]
Update sfc_netback driver to match sfc_resource 3.0.2.2074
Add support for direct guest access and acceleration of SFC9000 series
NICs.
Improve handling of NIC reset in sfc_netback
Remove nic_index state and replace with if_index from struct
net_device Remove duplication of header files with sfc_resource driver

Signed-off-by: Kieran Mansley <kmansley@solarflare.com>
15 years agoUpdate Solarflare Communications resource driver to version 3.0.2.2074
Keir Fraser [Fri, 8 Jan 2010 13:06:22 +0000 (13:06 +0000)]
Update Solarflare Communications resource driver to version 3.0.2.2074
to match net driver update.
Add support for new SFC9000 series NICs

Signed-off-by: Kieran Mansley <kmansley@solarflare.com>
15 years agoUpdate Solarflare Communications net driver to version 3.0.2.2074
Keir Fraser [Fri, 8 Jan 2010 13:05:49 +0000 (13:05 +0000)]
Update Solarflare Communications net driver to version 3.0.2.2074
Bring net driver in Xen tree in line with kernel.org tree
Add support for new SFC9000 series NICs

Signed-off-by: Kieran Mansley <kmansley@solarflare.com>
15 years agoxen: Fix compat_ioctl.h build.
Keir Fraser [Fri, 8 Jan 2010 11:56:04 +0000 (11:56 +0000)]
xen: Fix compat_ioctl.h build.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoia64, xencomm: support XEN_DOMCTL_mem_sharing_op
Keir Fraser [Fri, 8 Jan 2010 11:36:42 +0000 (11:36 +0000)]
ia64, xencomm: support XEN_DOMCTL_mem_sharing_op

This patch enables ia64 to support XEN_DOMCTL_mem_sharing_op.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
15 years agoSync sysctl.h Xen public header.
Keir Fraser [Fri, 8 Jan 2010 11:26:32 +0000 (11:26 +0000)]
Sync sysctl.h Xen public header.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
15 years agoprivcmd: fix build
Keir Fraser [Fri, 8 Jan 2010 11:23:29 +0000 (11:23 +0000)]
privcmd: fix build

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen/privcmd: fix for proper operation in compat mode
Keir Fraser [Wed, 6 Jan 2010 08:38:09 +0000 (08:38 +0000)]
xen/privcmd: fix for proper operation in compat mode

- sizeof(struct privcmd_mmapbatch_32) was wrong
- MFN array must be translated for IOCTL_PRIVCMD_MMAPBATCH

Also, the error indicator of IOCTL_PRIVCMD_MMAPBATCH should be in the
top nibble (it is documented that way in include/xen/public/privcmd.h
and include/xen/compat_ioctl.h), but since that is an incompatible
change it is not being done here (instead, a new ioctl with proper
behavior will need to be added).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxenoprof: dynamic buffer array allocation
Keir Fraser [Wed, 6 Jan 2010 08:15:35 +0000 (08:15 +0000)]
xenoprof: dynamic buffer array allocation

The recent change to locally define MAX_VIRT_CPUS wasn't really
appropriate - with there not being a hard limit on the number of
vCPU-s anymore, these arrays should be allocated dynamically.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen/privcmd: convert single shot check to be per-page
Keir Fraser [Wed, 6 Jan 2010 08:14:10 +0000 (08:14 +0000)]
xen/privcmd: convert single shot check to be per-page

For the sake of not breaking the ia64 build, old behavior is being
retained when HAVE_ARCH_PRIVCMD_MMAP. Hopefully someone able to
test ia64 can fix this up in the not too distant future.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoSync domctl.h Xen public header.
Keir Fraser [Mon, 4 Jan 2010 10:37:14 +0000 (10:37 +0000)]
Sync domctl.h Xen public header.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxenoprofile: Hardcode MAX_VIRT_CPUS - not supplied by Xen public headers.
Keir Fraser [Mon, 28 Dec 2009 09:42:49 +0000 (09:42 +0000)]
xenoprofile: Hardcode MAX_VIRT_CPUS - not supplied by Xen public headers.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoSync Xen grant-table header file.
Keir Fraser [Tue, 22 Dec 2009 18:18:43 +0000 (18:18 +0000)]
Sync Xen grant-table header file.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoSync Xen public headers for Xen 4.0.
Keir Fraser [Tue, 22 Dec 2009 13:30:45 +0000 (13:30 +0000)]
Sync Xen public headers for Xen 4.0.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoChanges to various backends to handle GNTST_eagain errors.
Keir Fraser [Thu, 17 Dec 2009 06:37:50 +0000 (06:37 +0000)]
Changes to various backends to handle GNTST_eagain errors.

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
15 years agoChanges to netback to handle GNTST_eagain errors.
Keir Fraser [Thu, 17 Dec 2009 06:37:50 +0000 (06:37 +0000)]
Changes to netback to handle GNTST_eagain errors.

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
15 years agoFixes to block backend to handle -EAGAIN grant table errors properly.
Keir Fraser [Thu, 17 Dec 2009 06:37:50 +0000 (06:37 +0000)]
Fixes to block backend to handle -EAGAIN grant table errors properly.

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
15 years agoUpdate to grant_table.h to sync with xen/include/public
Keir Fraser [Thu, 17 Dec 2009 06:37:49 +0000 (06:37 +0000)]
Update to grant_table.h to sync with xen/include/public

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
15 years agoprivcmd: Handle paged-out areas of foreign guest memory in mmap().
Keir Fraser [Thu, 17 Dec 2009 06:37:49 +0000 (06:37 +0000)]
privcmd: Handle paged-out areas of foreign guest memory in mmap().

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
15 years agoxen/backends: simplify address translations
Keir Fraser [Wed, 16 Dec 2009 16:44:12 +0000 (16:44 +0000)]
xen/backends: simplify address translations

There are quite a number of places where e.g. page->va->page
translations happen.

Besides yielding smaller code (source and binary), a second goal is to
make it easier to determine where virtual addresses of pages allocated
through alloc_empty_pages_and_pagevec() are really used (in turn in
order to determine whether using highmem pages would be possible
there).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen/balloon: prefer using pages from balloon in alloc_empty_pages_and_pagevec()
Keir Fraser [Wed, 16 Dec 2009 16:43:33 +0000 (16:43 +0000)]
xen/balloon: prefer using pages from balloon in alloc_empty_pages_and_pagevec()

This is both faster and less demanding on kernel resources.

Likely also something that could be done in the pv-ops tree (though it
would need some adjustment to deal with the balloon_order!=0 case).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoblktap2: properly __init-annotate blktap2 code
Keir Fraser [Fri, 11 Dec 2009 08:47:19 +0000 (08:47 +0000)]
blktap2: properly __init-annotate blktap2 code

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agonetback: Fixes for delayed copy of tx network packets.
Keir Fraser [Mon, 7 Dec 2009 14:14:28 +0000 (14:14 +0000)]
netback: Fixes for delayed copy of tx network packets.

 - Should call net_tx_action_dealloc() even when dealloc ring is
   empty, as there may in any case be work to do on the
   pending_inuse list.
 - Should not exit directly from the middle of the tx_action tasklet,
   as the tx_pending_timer should always be checked and updated at the
   end of the tasklet.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxenfb: Only start one xenfb kthread
Keir Fraser [Thu, 3 Dec 2009 13:53:06 +0000 (13:53 +0000)]
xenfb: Only start one xenfb kthread

When doing save/restore testing with the linux-2.6.18-xen.hg tree it
was discovered that every time a restore happened we would get a new
xenfb thread.  While the framebuffer continues to work, this is an
obvious resource leak.  The attached patch only starts up a new xenfb
thread the first time the backend connects, and continues to re-use
that in the future.  Jeremy's upstream LKML tree doesn't suffer from
this since it uses a completely different mechanism to do screen
updates.  Original patch from John Haxby @ Oracle; slightly modified
by me to apply to the linux-2.6.18-xen.hg tree.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
15 years agoxen/x86_64: correctly handle mem= reducing memory amount
Keir Fraser [Tue, 1 Dec 2009 14:02:52 +0000 (14:02 +0000)]
xen/x86_64: correctly handle mem= reducing memory amount

When mem= is being used to specify a value below the amount a domain
got passed from Xen, init_memory_mapping() got called with the higher
original value (end_pfn_map), triggering the BUG()s in maddr.h
checking PFNs against end_pfn.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen/PCI/MSI-X: Don't disable when it was never enabled
Keir Fraser [Mon, 30 Nov 2009 10:37:45 +0000 (10:37 +0000)]
xen/PCI/MSI-X: Don't disable when it was never enabled

This is the MSI-X counterpart for c/s 945.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoDisable xenbus warning for console during domU boot
Keir Fraser [Tue, 24 Nov 2009 17:27:38 +0000 (17:27 +0000)]
Disable xenbus warning for console during domU boot
and vfb timeout during domU shutdown
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoNew generic RTC class PC-style 'CMOS' driver backported
Keir Fraser [Tue, 24 Nov 2009 17:27:19 +0000 (17:27 +0000)]
New generic RTC class PC-style 'CMOS' driver backported
from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoRealtek 8169 gigabit ethernet driver backported
Keir Fraser [Tue, 24 Nov 2009 17:26:55 +0000 (17:26 +0000)]
Realtek 8169 gigabit ethernet driver backported
from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoMMCONFIG PCI config space access driver backported
Keir Fraser [Tue, 24 Nov 2009 17:26:34 +0000 (17:26 +0000)]
MMCONFIG PCI config space access driver backported
from Linux Kernel Ver. 2.6.31.5
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoEnable PATA support in some SATA drivers
Keir Fraser [Tue, 24 Nov 2009 17:26:12 +0000 (17:26 +0000)]
Enable PATA support in some SATA drivers
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoIntel TCO Timer/Watchdog driver backported
Keir Fraser [Tue, 24 Nov 2009 17:25:44 +0000 (17:25 +0000)]
Intel TCO Timer/Watchdog driver backported
from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoITE IT87xx and compatibles driver backported
Keir Fraser [Tue, 24 Nov 2009 17:25:22 +0000 (17:25 +0000)]
ITE IT87xx and compatibles driver backported
from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoIntel 82801 (ICH) driver backported
Keir Fraser [Tue, 24 Nov 2009 17:25:00 +0000 (17:25 +0000)]
Intel 82801 (ICH) driver backported
from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoIntel Core (2) Duo/Solo temperature sensor driver
Keir Fraser [Tue, 24 Nov 2009 17:24:40 +0000 (17:24 +0000)]
Intel Core (2) Duo/Solo temperature sensor driver
backported from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoATI drivers backported from Linux Kernel Ver. 2.6.29.2
Keir Fraser [Tue, 24 Nov 2009 17:24:14 +0000 (17:24 +0000)]
ATI drivers backported from Linux Kernel Ver. 2.6.29.2
Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
15 years agoxen: Dont call msi_unmap_pirq() if did not enable msi
Keir Fraser [Tue, 24 Nov 2009 14:45:19 +0000 (14:45 +0000)]
xen: Dont call msi_unmap_pirq() if did not enable msi

When device driver unload, it may call pci_disable_msi(), if msi did
not enabled but do msi_unmap_pirq(), then later driver reload and
without msi, then will failed in request_irq() for irq_desc[irq]->chip
valie is no_irq_chip. So when did not enable msi during driver
initializing, then unloaded driver will not try to disable it.

How to reproduce it:
  At the server with QLogic 25xx, try to reload qla2xxx will hit it.

Signed-off-by: Joe Jin <joe.jin@oracle.com>
15 years agodell rbu: force proper address translation in Dell RBU
Keir Fraser [Mon, 23 Nov 2009 07:32:47 +0000 (07:32 +0000)]
dell rbu: force proper address translation in Dell RBU

Replacing virt_to_phys() by virt_to_bus(), and adding code to ensure
contiguity as required by the firmware.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Tested-by: Douglas Warzecha <Douglas_Warzecha@Dell.com>
15 years agoIMQ allows the network buffer queuing discipline to block inbound
Keir Fraser [Fri, 13 Nov 2009 22:01:54 +0000 (22:01 +0000)]
IMQ allows the network buffer queuing discipline to block inbound
packets from the guest (normal queuing disciplines can only block
outbound packets).

From http://www.linuximq.net/patchs/linux-2.6.18-imq.diff

15 years agoAdded tag xen-3.4.2 for changeset 9348c4535655
Keir Fraser [Tue, 10 Nov 2009 18:52:25 +0000 (18:52 +0000)]
Added tag xen-3.4.2 for changeset 9348c4535655

15 years agoxenbus: do not hold transaction_mutex when returning to userspace xen-3.4.2
Keir Fraser [Wed, 4 Nov 2009 18:13:32 +0000 (18:13 +0000)]
xenbus: do not hold transaction_mutex when returning to userspace

  ================================================
  [ BUG: lock held when returning to user space! ]
  ------------------------------------------------
  xenstore-list/3522 is leaving the kernel with locks still held!
  1 lock held by xenstore-list/3522:
   #0:  (&xs_state.transaction_mutex){......}, at: [<c026dc6f>]
   xenbus_dev_request_and_reply+0x8f/0xa0

The canonical fix for this type of issue appears to be to maintain a
count manually rather than using an rwsem so do that here.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoxen/x86: fix GFP mask handling in dma_alloc_coherent()
Keir Fraser [Fri, 23 Oct 2009 09:07:22 +0000 (10:07 +0100)]
xen/x86: fix GFP mask handling in dma_alloc_coherent()

Ever since no longer pushing all memory into the DMA zone (c/s 355),
explicitly setting GFP_DMA as well as not masking off GFP_DMA32 was
unnecessarily restricting the pool from which suitable memory could be
taken.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agousbback: check return value of xenbus_register in usbback_init().
Keir Fraser [Fri, 23 Oct 2009 09:06:48 +0000 (10:06 +0100)]
usbback: check return value of xenbus_register in usbback_init().

Signed-off-by: Noboru Iwamatsu <n_iwamatsu@jp.fujitsu.com>
15 years agoblkfront: Use system default scheduler rather than force no-op.
Keir Fraser [Mon, 12 Oct 2009 11:57:55 +0000 (12:57 +0100)]
blkfront: Use system default scheduler rather than force no-op.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agousbfront: fix compile error and disable PM feature
Keir Fraser [Thu, 8 Oct 2009 07:53:36 +0000 (08:53 +0100)]
usbfront: fix compile error and disable PM feature

Fix the compilation error of usbfront, and disable bus suspend/resume
by default.

Signed-off-by: Noboru Iwamatsu <n_iwamatsu@jp.fujitsu.com>
15 years agoPVUSB: Fixes and updates
Keir Fraser [Wed, 7 Oct 2009 07:42:00 +0000 (08:42 +0100)]
PVUSB: Fixes and updates

- xenbus state flow changed.
  Whole of the flow is changed to be like netback/netfront.
  Reconfiguring/Reconfiguring are removed.

- New RING for hotplug notification added.

- USBIF_MAX_SEGMENTS_PER_REQUEST value is changed (10) to (16).
  According to this change, RING_SIZE is decreased from 32 to 16.
  This affects the performance. My flash drive's read throughput
  was dropped from 29MB/s to 18MB/s in the linux environment.
  However, Windows guest send urb with 64kB buffer(64KB = 4kB * 16).
  This is required.

- New port-setting interface
  xenbus_watch_path2 is added to usbback, port-setting interface
  is moved from sysfs to xenstore.
  Now, the port-rule is directly written to xenstore entry.
  Example.
  # xenstore-write /local/domain/0/backend/vusb/1/0/port/1 "2-1"
    (adding physical bus 2-1 to vusb-1-0 port 1)

- urb dequeue function completed.
  usbfront send unlink-request to usbback, and can cancel the urb
  that is submitted in the backend.

- New USB Spec version (USB1.1/USB2.0) selection support.
  usbfront can act as both USB1.1 and USB2.0 virtual host controller
  according to the xenstore entry key "usb-ver".

- experimental bus_suspend/bus_resume added to usbfront.

- various cleanups, bugfix, refactoring and codestyle-fix.

Signed-off-by: Noboru Iwamatsu <n_iwamatsu@jp.fujitsu.com>
15 years agoxen: re-synchronize ring.h public header
Keir Fraser [Wed, 7 Oct 2009 06:33:40 +0000 (07:33 +0100)]
xen: re-synchronize ring.h public header

Patch 20267:e9366bed077e modified the definition of sring in the xen
repo's version of ring.h, but not the version in the linux kernel
repo. That change broke pause/resume/shutdown messages from the
blktap2 kernel module, which (for the time being) relies on pad[0]
being at consistent location in the sring struct.  This patch fixes
this regression by resyncronizing the two the files.

Signed off by: Jake Wires <Jake.Wires@citrix.com>

15 years agomce: support machine check logging left over from previous reset
Keir Fraser [Tue, 29 Sep 2009 10:23:06 +0000 (11:23 +0100)]
mce: support machine check logging left over from previous reset

Signed-off-by: Kazuhiro Suzuki <kaz@jp.fujitsu.com>
15 years agoxen/usb: force proper address translation in USB monitor
Keir Fraser [Tue, 22 Sep 2009 07:04:07 +0000 (08:04 +0100)]
xen/usb: force proper address translation in USB monitor

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen/edac: force proper address translation in EDAC
Keir Fraser [Tue, 22 Sep 2009 07:03:39 +0000 (08:03 +0100)]
xen/edac: force proper address translation in EDAC

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoFix BUG in unlock_cpu_hotplug().
Keir Fraser [Sun, 30 Aug 2009 07:54:15 +0000 (08:54 +0100)]
Fix BUG in unlock_cpu_hotplug().

Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxen/x86: make do_settimeofday() return -EPERM when clock can't be changed
Keir Fraser [Tue, 25 Aug 2009 13:55:22 +0000 (14:55 +0100)]
xen/x86: make do_settimeofday() return -EPERM when clock can't be changed

Rather than returning success here (without actually having done
anything), it seems more appropriate/conforming to let the caller know
that what he intended to do didn't succeed.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoixgbe: memset size in netif_napi_del()
Keir Fraser [Wed, 19 Aug 2009 12:00:40 +0000 (13:00 +0100)]
ixgbe: memset size in netif_napi_del()

By inspection the memset appears to be long as napi->poll_dev
is a struct net_device not a struct napi_struct.

Cc: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
15 years agoRevert 927:56df01ffed10
Keir Fraser [Sun, 16 Aug 2009 07:42:29 +0000 (08:42 +0100)]
Revert 927:56df01ffed10

15 years agodrivers/xen/blkback: Add the kernel side of the blkback queueing feature.
Keir Fraser [Fri, 14 Aug 2009 16:28:43 +0000 (17:28 +0100)]
drivers/xen/blkback: Add the kernel side of the blkback queueing feature.

This is similar to the credit scheduler used in netif, except that it
allows occasional burstability (for use with e2fsck as an example).

Signed-off-by: William Pitcock <nenolod@dereferenced.org>
15 years agonet: Fix NULL pointer deref of sock->ops->Sendpage in sock_sendpage().
Keir Fraser [Fri, 14 Aug 2009 16:05:54 +0000 (17:05 +0100)]
net: Fix NULL pointer deref of sock->ops->Sendpage in sock_sendpage().

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoPCI x86: always use conf1 to access config space below 256 bytes
Keir Fraser [Fri, 14 Aug 2009 09:54:33 +0000 (10:54 +0100)]
PCI x86: always use conf1 to access config space below 256 bytes

Back-ported to 2.6.18.8 by Simon Horman

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Simon Horman <horms@verge.net.au>
15 years agommconfig: Fix x86_64 ioremap base_address
Keir Fraser [Fri, 14 Aug 2009 09:53:56 +0000 (10:53 +0100)]
mmconfig: Fix x86_64 ioremap base_address

Current mmconfig has some problems of remapped range.

a) In the case of broken MCFG tables on Asus etc., we need to remap
   256M range, but currently only remap 1M.

b) The base address always corresponds to bus number 0, but currently
   we are assuming it corresponds to start bus number.

This patch fixes the above problems.

(akpm: Arjan suggests that if the MCFG table is broken we just
shouldn't use it, rather than try to work around things).

Back-ported to 2.6.18 by Simon Horman

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Simon Horman <horms@verge.net.au>
15 years agoxen/x86-64: fix Dom0 boot on AMD K8 CPUs
Keir Fraser [Wed, 5 Aug 2009 11:05:34 +0000 (12:05 +0100)]
xen/x86-64: fix Dom0 boot on AMD K8 CPUs

The workaround in question here should be (and is being) applied by
the hypervisor (which doesn't allow any guest - including Dom0 - to
write other than all zeroes or all ones into MCi_CTL).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoxen-blkfront: beyond ARRAY_SIZE of info->shadow
Keir Fraser [Wed, 29 Jul 2009 08:21:40 +0000 (09:21 +0100)]
xen-blkfront: beyond ARRAY_SIZE of info->shadow

Import upstream pv-ops change
b9ed7252d219c1c663944bf03846eabb515dbe75:

Do not go beyond ARRAY_SIZE of info->shadow
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoblktap2: properly suppress compiler warning
Keir Fraser [Tue, 28 Jul 2009 15:29:11 +0000 (16:29 +0100)]
blktap2: properly suppress compiler warning

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoblktap2: make blktap2 work for auto translated mode with hvm domain.
Keir Fraser [Fri, 24 Jul 2009 09:28:33 +0000 (10:28 +0100)]
blktap2: make blktap2 work for auto translated mode with hvm domain.

This patch makes blktap2 work for hvm domain with auto translated
mode. (I.e. IA64 HVM domain case as Kuwamura reported its bug.)

blktap2 has introduces new feature that pages from the self domain
can be handled. However it doesn't work for auto translated mode
because blktap2 relies on p2m table manipulation. But the p2m
doesn't make sense for auto translated mode.
So self grant mapping is used instead.

Just passing same page to blktap2 daemon doesn't work because
when doing io, the page is locked, so the given page from blktap2
block device is already locked. When blktap2 daemon issues IO on
the page, it tries to lock it resulting in dead lock.
So resorted to self grant.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agolinux/x86-64: MCE: truely do Dom0 stuff only on Dom0
Keir Fraser [Mon, 20 Jul 2009 09:11:23 +0000 (10:11 +0100)]
linux/x86-64: MCE: truely do Dom0 stuff only on Dom0

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoblkback: pagemap bug fixes
Keir Fraser [Mon, 20 Jul 2009 09:03:44 +0000 (10:03 +0100)]
blkback: pagemap bug fixes

Signed-off-by: Jake Wires <jake.wires@citrix.com>
15 years agobuildconfigs: INPUT_EVDEV=y as default for xen0_x86
Keir Fraser [Wed, 15 Jul 2009 08:10:37 +0000 (09:10 +0100)]
buildconfigs: INPUT_EVDEV=y as default for xen0_x86

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxen: fix missing Crash note in /proc/iomem
Keir Fraser [Mon, 13 Jul 2009 10:55:13 +0000 (11:55 +0100)]
xen: fix missing Crash note in /proc/iomem

Missing "Crash note" in /proc/iomem (dom 0) happens on the Xen 3.4.*.
This causes a crash dump cannot be analyzed normally.

Signed-off-by: Itsuro Oda <oda@valinux.co.jp>
15 years agoxen/x86: allow non-SMP builds of blktap2 to succeed
Keir Fraser [Fri, 10 Jul 2009 10:01:34 +0000 (11:01 +0100)]
xen/x86: allow non-SMP builds of blktap2 to succeed

c/s 893 introduced a regression here, since xen_invlpg_all() is an
SMP-only function.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agox86: Handle dynamic Cx state changes correctly.
Keir Fraser [Mon, 6 Jul 2009 14:20:52 +0000 (15:20 +0100)]
x86: Handle dynamic Cx state changes correctly.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoblktap2: remove warnings.
Keir Fraser [Mon, 29 Jun 2009 09:57:46 +0000 (10:57 +0100)]
blktap2: remove warnings.

This patch removes the following warnings on ia64.

> linux-2.6.18-xen.hg/drivers/xen/blktap2/device.c: In function
  'blktap_device_finish_request':
> linux-2.6.18-xen.hg/drivers/xen/blktap2/device.c:403: warning:
  format '%lld' expects type 'long long int', but argument 7 has type 'uint64_t'
> linux-2.6.18-xen.hg/drivers/xen/blktap2/sysfs.c: In function
  'blktap_sysfs_debug_device':
> linux-2.6.18-xen.hg/drivers/xen/blktap2/sysfs.c:276: warning: format
  '%llu' expects type 'long long unsigned int', but argument 4 has type
  'uint64_t'

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years ago[IA64] Build blktap2 driver by default in x86 builds.
Isaku Yamahata [Mon, 29 Jun 2009 03:09:16 +0000 (12:09 +0900)]
[IA64] Build blktap2 driver by default in x86 builds.

add CONFIG_XEN_BLKDEV_TAP2=y to buildconfigs/linux-defconfig_xen_ia64.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years ago[IA64] xencomm: tmem support.
Isaku Yamahata [Mon, 29 Jun 2009 02:23:16 +0000 (11:23 +0900)]
[IA64] xencomm: tmem support.

add tmem support to xencomm.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years ago[IA64] xencomm: add XENVER_commandline support.
Isaku Yamahata [Mon, 29 Jun 2009 02:22:41 +0000 (11:22 +0900)]
[IA64] xencomm: add XENVER_commandline support.

add XENVER_commandline support to xencomm.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agoxenbus: fix timeout with PV guest and physical CDROM
Keir Fraser [Tue, 23 Jun 2009 10:12:38 +0000 (11:12 +0100)]
xenbus: fix timeout with PV guest and physical CDROM

Specifying a physical CDROM in the configuration of a PV guest, like

    disk =3D ['tap:aio:/....,xvda,w', 'phy:/dev/cdrom,hdc:cdrom,r' ]

will cause the 300 seconds timeout to occur if there is no physical
CDROM in the tray.  The bug is due to the device being Closed (as shown by
the timeout message) but not ready.  The configuration is quite bogus, but
this is a regression from when the timeout was 10 seconds only, and
the fix is easy and safe: only check is_ready for connected devices.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
15 years agox86-64: do not pass unmanageable amounts of memory to Dom0
Keir Fraser [Thu, 18 Jun 2009 09:32:16 +0000 (10:32 +0100)]
x86-64: do not pass unmanageable amounts of memory to Dom0

Due to address space restrictions it is not possible to successfully
pass more than about 500Gb to a Linux Dom0 unless its kernel specifies
a non-default phys-to-machine map location via XEN_ELFNOTE_INIT_P2M.

For non-Linux Dom0 kernels I can't say whether the limit could be set
to close to 1Tb, but since passing such huge amounts of memory isn't
very useful anyway (and can be enforced via dom0_mem=3D), the patch
doesn't attempt to guess the kernel type and restricts the memory
amount in all cases.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoTranscendent memory ("tmem") for Linux
Keir Fraser [Thu, 18 Jun 2009 09:24:18 +0000 (10:24 +0100)]
Transcendent memory ("tmem") for Linux

Tmem, when called from a tmem-capable (paravirtualized) guest, makes
use of otherwise unutilized ("fallow") memory to create and manage
pools of pages that can be accessed from the guest either as
"ephemeral" pages or as "persistent" pages. In either case, the pages
are not directly addressible by the guest, only copied to and fro via
the tmem interface. Ephemeral pages are a nice place for a guest to
put recently evicted clean pages that it might need again; these pages
can be reclaimed synchronously by Xen for other guests or other uses.
Persistent pages are a nice place for a guest to put "swap" pages to
avoid sending them to disk. These pages retain data as long as the
guest lives, but count against the guest memory allocation.

This patch contains the Linux paravirtualization changes to
complement the tmem Xen patch (xen-unstable c/s 19646). It
implements "precache" (ext3 only as of now), "preswap",
and limited "shared precache" (ocfs2 only as of now) support.
CONFIG options are required to turn on
the support (but in this patch they default to "y").  If
the underlying Xen does not have tmem support or has it
turned off, this is sensed early to avoid nearly all
hypercalls.

Lots of useful prose about tmem can be found at
http://oss.oracle.com/projects/tmem

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
15 years agoxen/x86: Fix build failure after platform_op header changes.
Keir Fraser [Wed, 17 Jun 2009 08:07:23 +0000 (09:07 +0100)]
xen/x86: Fix build failure after platform_op header changes.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agolinux: follow-up adjustments for platform.h interface header change
Keir Fraser [Wed, 17 Jun 2009 06:26:52 +0000 (07:26 +0100)]
linux: follow-up adjustments for platform.h interface header change

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoSync Xen public interface headers with 19775:bda5ab0cb387
Keir Fraser [Wed, 17 Jun 2009 06:26:00 +0000 (07:26 +0100)]
Sync Xen public interface headers with 19775:bda5ab0cb387

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agovideo/sstfb: Fix #elif->#else typo
Keir Fraser [Tue, 16 Jun 2009 11:00:56 +0000 (12:00 +0100)]
video/sstfb: Fix #elif->#else typo
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
15 years agox86: add MCA logging support in DOM0
Keir Fraser [Tue, 16 Jun 2009 10:58:55 +0000 (11:58 +0100)]
x86: add MCA logging support in DOM0

When an MCE/CMCI error happens (or by polling), the related error
information will be sent to DOM0 by XEN. This patch will help to fetch
the xen-logged information by hypercall and then convert XEN-format
log into Linux format MCELOG. It makes using current available mcelog
tools for native Linux possible.

With this patch, after mce/cmci error log information is sent to DOM0,
running mcelog tools in DOM0, you will get same detailed decoded mce
information as in Native Linux.

Signed-Off-By: Liping Ke <liping.ke@intel.com>
Signed-Off-By: Yunhong Jiang <yunhong.jiang@intel.com>
Acked-By: Jan Beulich <jbeulich@novell.com>
15 years agoblktap: Indirection in vm_area_struct->vm_private_data
Keir Fraser [Tue, 16 Jun 2009 10:09:39 +0000 (11:09 +0100)]
blktap: Indirection in vm_area_struct->vm_private_data

The recent patch in linux-2.6.18.hg (878: eba6fe6d8d53) changed the
way that the foreign map is stored in vm_area_struct. Currently blktap
(not 2) implementation is internally inconsistent, which triggers
kernel bug when tap:aio disk is used (dump attached at the end of the
email).

Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk>
15 years agoblktap2: fix compiler further warnings
Keir Fraser [Tue, 16 Jun 2009 10:07:19 +0000 (11:07 +0100)]
blktap2: fix compiler further warnings

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoFix Makefile.xen generation when building external modules
Keir Fraser [Tue, 16 Jun 2009 10:06:10 +0000 (11:06 +0100)]
Fix Makefile.xen generation when building external modules

Otherwise, the file will be (attempted to be) put in the (possibly
read-only) source tree.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agopci: fix pcie-aer recovery mechanism defects.
Keir Fraser [Mon, 8 Jun 2009 11:23:24 +0000 (12:23 +0100)]
pci: fix pcie-aer recovery mechanism defects.

When aer error happening, if the device is not hided or assigned,
exit. If the device is assigned yet not connected by PV guest or is
owned by HVM guest, kill the guest. [sh_info is NULL]

Signed-Off-By: Liping Ke <liping.ke@intel.com>
Signed-Off-By: Yunhong Jiang <yunhong.jiang@intel.com>
15 years agoballoon: try harder to balloon up under memory pressure.
Keir Fraser [Fri, 5 Jun 2009 13:01:20 +0000 (14:01 +0100)]
balloon: try harder to balloon up under memory pressure.

Currently if the balloon driver is unable to increase the guest's
reservation it assumes the failure was due to reaching its full
allocation, gives up on the ballooning operation and records the limit
it reached as the "hard limit". The driver will not try again until
the target is set again (even to the same value).

However it is possible that ballooning has in fact failed due to
memory pressure in the host and therefore it is desirable to keep
attempting to reach the target in case memory becomes available. The
most likely scenario is that some guests are ballooning down while
others are ballooning up and therefore there is temporary memory
pressure while things stabilise. You would not expect a well behaved
toolstack to ask a domain to balloon to more than its allocation nor
would you expect it to deliberately over-commit memory by setting
balloon targets which exceed the total host memory.

This patch drops the concept of a hard limit and causes the balloon
driver to retry increasing the reservation on a timer in the same
manner as when decreasing the reservation.

Also if we partially succeed in increasing the reservation
(i.e. receive less pages than we asked for) then we may as well keep
those pages rather than returning them to Xen.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoblktap2: use blk_rq_map_sg() here too
Keir Fraser [Thu, 4 Jun 2009 09:46:54 +0000 (10:46 +0100)]
blktap2: use blk_rq_map_sg() here too

Just like in blkfront, not doing so can cause the maximum number of
segments check to trigger.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agopci/guestdev, iomul: use strlcpy()
Keir Fraser [Thu, 4 Jun 2009 09:45:49 +0000 (10:45 +0100)]
pci/guestdev, iomul: use strlcpy()

use strlcpy() to make them robust.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agolinux: fix blkback/blktap2 interaction
Keir Fraser [Thu, 4 Jun 2009 09:33:52 +0000 (10:33 +0100)]
linux: fix blkback/blktap2 interaction

blkback's page map code needs to be accessible to both blkback and
blktap2, irrespective of whether either or both are modules. The
most immediate solution is to break it out into a separate, library-
like component that doesn't need building if either of the two
consumers is configured off, and that gets built as a module if both
consumers are modules.

Also fix the dummy implementation of blkback_pagemap_read(), since
using BUG() there doesn't compile.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agolinux/blktap2: reduce TLB flush scope
Keir Fraser [Thu, 4 Jun 2009 09:32:57 +0000 (10:32 +0100)]
linux/blktap2: reduce TLB flush scope

c/s 885 added very coarse TLB flushing. Since these flushes always
follow single page updates, single page flushes (when available) are
sufficient.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agolinux/blktap2: allow to build as module
Keir Fraser [Thu, 4 Jun 2009 09:32:34 +0000 (10:32 +0100)]
linux/blktap2: allow to build as module

... and also allow to interact with blkback when that's also built as
a module.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoDom0 PCI: fix SR-IOV function dependency link problem
Keir Fraser [Wed, 3 Jun 2009 10:22:24 +0000 (11:22 +0100)]
Dom0 PCI: fix SR-IOV function dependency link problem

PCIe Root Complex Integrated Endpoint does not implement ARI, so this
kind of endpoint uses 3-bit function number. The function dependency
link of the integrated endpoint should be calculated using the device
number field in conjunction with the value from function dependency
link register.

Normal SR-IOV endpoint always implements ARI and the function
dependency link register contains 8-bit function number (i.e. `devfn'
from software perspective).

Signed-off-by: Yu Zhao <yu.zhao@intel.com>
15 years agoDom0 PCI: fix a regression introduced by the SR-IOV change
Keir Fraser [Wed, 3 Jun 2009 10:21:52 +0000 (11:21 +0100)]
Dom0 PCI: fix a regression introduced by the SR-IOV change

The device class may be changed during the early fixup. So need to
re-read the device class from pci_dev after the fixup.

The patch "PCI: centralize device setup code" (c/s 825) wrongly
cleaned up the device class re-read. This patch reverts that change.

Signed-off-by: Yu Zhao <yu.zhao@intel.com>
15 years agoBuild blktap2 driver by default in x86 builds.
Keir Fraser [Tue, 2 Jun 2009 22:43:55 +0000 (23:43 +0100)]
Build blktap2 driver by default in x86 builds.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxen/x86-64: fix phys_pmd_init() (regression from c/s 547)
Keir Fraser [Fri, 29 May 2009 08:17:16 +0000 (09:17 +0100)]
xen/x86-64: fix phys_pmd_init() (regression from c/s 547)

I didn't pay attention to the fact that 'end' must always be an upper
bound, while xen_start_info->nr_pages must be additionally during
boot.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agolinux/blktap2: fix compiler warnings
Keir Fraser [Fri, 29 May 2009 08:16:37 +0000 (09:16 +0100)]
linux/blktap2: fix compiler warnings

Signed-off-by: Jan Beulich <jbeulich@novell.com>
15 years agoblktap2: introduce blktap2 dedicated config.
Keir Fraser [Thu, 28 May 2009 09:05:02 +0000 (10:05 +0100)]
blktap2: introduce blktap2 dedicated config.

Introduce CONFIG_XEN_BLKDEV_TAP2 instead of CONFIG_XEN_BLKDEV_TAP.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agoblktap2: add tlb flush properly.
Keir Fraser [Thu, 28 May 2009 09:04:26 +0000 (10:04 +0100)]
blktap2: add tlb flush properly.

xen_invlpg() flushes tlb on its cpu, but tlb flush is needed on
all cpus. So replace xen_invlpg() with more proper ones.
Maybe it would be possible to make tlb flush less.
this patch also makes blktap2 compile on ia64 because xen_invlpg()
is x86 specific.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agolinux/pci: reserve io/memory space for bridge
Keir Fraser [Thu, 28 May 2009 09:00:03 +0000 (10:00 +0100)]
linux/pci: reserve io/memory space for bridge

reserve io/memory space for bridge which will be used later
by PCI hotplug.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agopci/guestdev: enhance guestdev to accept +iomul.
Keir Fraser [Thu, 28 May 2009 08:59:18 +0000 (09:59 +0100)]
pci/guestdev: enhance guestdev to accept +iomul.

enhance guestdev to accept +iomul and use it.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
15 years agoPCI pass through: PCIe IO space multiplexing
Keir Fraser [Thu, 28 May 2009 08:57:49 +0000 (09:57 +0100)]
PCI pass through: PCIe IO space multiplexing

This is required for more than 16 HVM domain to boot from
PCIe pass through device.

Linux as dom0 exclusively assigns IO space to downstream PCI bridges
and the assignment unit of PCI bridge IO space is 4K. So the only up
to 16 PCIe device can be accessed via IO space within 64K IO ports.
PCI expansion ROM BIOS often uses IO port access to boot from the
device, so on virtualized environment, it means only up to 16 guest
domain can boot from pass-through device.

This patch allows PCIe IO space sharing of pass-through device.
- reassign IO space of PCIe devices specified by
  "guestiomuldev=[<segment>:]<bus>:<dev>[,[<segment:><bus>:dev]][,...]"
  to be shared.
  This is implemented as Linux PCI quirk fixup.

  The sharing unit is PCIe switch. Ie IO space of the end point
  devices under the same switch will be shared. If there are more than
  one switches, two areas of IO space will be used.

- And the driver which arbitrates the accesses to the multiplexed PCIe
  IO space. Later qemu-dm will use this.

Limitation:
IO port of IO shared devices can't be accessed from dom0 Linux device
driver.  But this wouldn't be a big issue because PCIe specification
discourages the use of IO space and recommends that IO space should be
used only for bootable device with ROM code. OS device driver should
work without IO space access.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>