and also fixes the following:
- a problem introduced by a recent change to the xenbus_driver structure
requires driver-specific data to be stored in another data structures
- removes the #define'd MIN by min/min_t
- moves the sysfs entry to /sys/devices/xen/<vtpm-%d>
- fixes a bug occurring during cancellation of requests
- updates the default configuration to also compile the TPM V1.2 driver
submitted in part 2 of this patch
- all changes made to the generic TPM driver are surrounded by #ifdef
CONFIG_XEN's.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
This patch adds TCP Segmentation Offload (TSO) support to the backend.
It also advertises this fact through xenbus so that the frontend can
detect this and send through TSO requests only if it is supported.
This is done using an extra request slot which is indicated by a flag
in the first slot. In future checksum offload can be done in the same
way.
The extra request slot must not be generated if the backend does not
support the appropriate feature bits. For now this is simply feature-tso.
If the frontend detects the presence of the appropriate feature bits,
it may generate TX requests which have the appropriate request flags
set that indicates the presence of an extra request slot with the extra
information.
On the backend the extra request slot is read if and only if the request
flags are set in the TX request.
This protocol allows more feature bits to be added in future without
breaking compatibility. At least the hardware checksum bit is planned.
Even though only TSO is supported for now the code actually supports
GSO so it can be applied to any other protocol. The only missing bit
is the detection of host support for a specific GSO protocol. Once that
is added we can advertise all supported protocols to the guest.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Keir Fraser <keir@xensource.com>
Just like SG, TSO support here is innate. So all we need to do is mark it
as such. This patch also adds the ethtool control functions for SG.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This patch changes the make_tx_response id argument to a request pointer
instead. This allows us to test the request flag in future for TSO.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
The location is 'statistics' directory under each VBD directory, for
example, /sys/devices/xen-backend/vbd-x-xxxx/statistics.
The 'statistics' directory includes the following three statistical
information:
oo_req
is the number of requests held up due to full pipeline.
rd_req
is the number of processed READ requests.
wr_req
is the number of processed WRITE requests.
Signed-off-by: Satoshi UCHIDA <s-uchida@ap.jp.nec.com>
'instance' variable not being initialized at the time when it's driver
counterpart is accessed. That variable's content was used to initialize the
tpmif structure. Instead, now a pointer to the structure is passed whose
'instance' variable will be initialized before the domain is resumed.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
sizeof of the mach2phys table default mapping. Use this in Linux to
dynamically adapt the mfn_to_pfn() routine to undelrying hypervisor.
Signed-off-by: Keir Fraser <keir@xensource.com>
for spurious write faults on mappings that have been
changed from read-only to writable. If a CPU has a stale
read-only entry in its TLB, it is allowed to fault on
the next write access without re-walking the page table.
Signed-off-by: Keir Fraser <keir@xensource.com>
for unprivileged domains (in any case, can fall back to swiotlb).
On non-privileged domain of Xen/IA64, this caused some trouble.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
can sleep, we could race save/restore and end up with stale
machine addresses stores in pgd entries. Avoid this by
remembering virtuall addresses and translating to machine
addresses all at the end and protected by the pgd_lock.
Signed-off-by: Keir Fraser <keir@xensource.com>
when reconnecting to backend driver (e.g., after save/restore or migrate).
Two main reasons for this:
1. The retransmit code is broken for fragmented packets. It would need
a rewrite to cope with the new scatter-gather format.
2. We will drop packets anyway, in both directions (e.g., takes some
time for received packets to be redirected to new virtual interface;
also further transmitted packets from the network stack are dropped
after we call netif_carrier_off(), so even if we retransmite what's
already in the ring it is likely that some subsequent packets will
already be lost).
If this causes downtimes that are too long (particularly for live
relocation) then the whole strategy for buffering packets while the
frontend-backend connection is severed needs to be considered.
Signed-off-by: Keir Fraser <keir@xensource.com>
Moving the re-allocation to low memory into pgd_alloc() has several
advantages:
1. Avoids race with save/restore where pgdir may end up above 4GB after
save/restore.
2. If pgdir cannot be re-allocated we can return failure to the caller
rather than BUG().
3. Slightly reduces diff against native Linux code.
Signed-off-by: Keir Fraser <keir@xensource.com>
1. We must ensure gnttab callbacks are disabled and all work
flushed before tearing down device state. A new gnttab interface
call is added for this purpose.
2. blkif_free() must check for a request_queue before deref'ing it.
Signed-off-by: Keir Fraser <keir@xensource.com>
after the device-specific resume code has run. Also removed some unused /
usless code from netfront.c.
Signed-off-by: Steven Hand <steven@xensource.com>
There is a problem with the current implementation of stop_hz_timer in
arch/i386/kernel/time-xen.c where the hz timer can be stopped on a CPU
which has RCU callbacks pending.
This patch backports a new RCU API created to fix this problem for the
s390 implementation of stop_hz_timer and also updates the time-xen.c
implementation of stop_hz_timer to call the new API.
Signed-off-by: Harry Butterworth <butterwo@uk.ibm.com>