Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
Add a new ioctl to /proc/xen/privcmd which allows domctls to be performed
without using the generic hypercall interface, so that they are available
on restricted fds.
This requires an unfortunate amount of fiddling with headers so that
XEN_GUEST_HANDLE_64 and uint64_aligned_t are available in kernel
space.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
Watch the online node in the backend area, as well as the state node
in the frontend area, and fire the frontend state changed watch
whenever it changes. This allows us to catch the case where a device
shuts down in a domU and then gets xm detach'd from in dom0.
Otherwise, the backend doesn't shut down correctly, since online was
set when the frontend shut down and we don't get another kick when it
becomes unset.
Steven Smith [Thu, 28 May 2009 10:54:19 +0000 (11:54 +0100)]
__gnttab_dma_map_page can be called from a softirq (via the network
transmit softirq for example) therefor gnttab_copy_grant_page needs to
take gntab_dma_lock in an interrupt safe manner.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
There's no point in sending lots of little packets to a copying
receiver if we can instead arrange to copy them all into a single RX
buffer. We need to copy anyway, so there's no overhead here, and this
is a little bit easier on the receiving domain's network stack.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
Ensure that packet csums are computed correctly when sending a GSO
packet to an interface which supports scatter-gather but not transmit
checksum offloads.
Signed-off-by: Steven Smith <ssmith@xensource.com>
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
[NETBACK] Try to pull a minimum of 72 bytes into the skb data area
when receiving a packet into netback. The previous number, 64, tended
to place a fragment boundary in the middle of the TCP header options
and led to unnecessary fragmentation in Windows <-> Windows
networking.
Signed-off-by: Steven Smith <ssmith@xensource.com>
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
It is possible for a frontend to generate a TSO request which doesn't
actually need segmentation (i.e. with size < MTU). Make sure this
doesn't crash the backend.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
The Windows drivers push the network frontend to state Closed, then
Initialised, then Closed again as part of device disable. Make sure
the backend doesn't get stuck at closed.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
Arrange that netback waits for the hotplug scripts to complete before
going to state Connected. WHQL gets quite upset if it sends packets
which don't arrive, and that can happen if our hotplug scripts are
slow and don't hook the network interface up to the bridge in time.
Steven Smith [Thu, 28 May 2009 10:54:20 +0000 (11:54 +0100)]
It turns out that Windows occasionally generates packets in which the
IP and TCP headers are in different fragments. Make sure that the
backends can handle this.
Steven Smith [Thu, 28 May 2009 10:54:19 +0000 (11:54 +0100)]
Close block devices when the pv drivers take over and flush the buffer cache.
- close and free the block devices in qemu when we switch to pv drivers in
the guest
- use BLKFLSBUF to flush the buffer cache, both in qemu and in blkback
Steven Smith [Thu, 28 May 2009 10:54:19 +0000 (11:54 +0100)]
sys_mlock and sys_munlock are needed to build the microcode driver as a module.
Index: tmp-mlock/mm/mlock.c
===================================================================