Justin T. Gibbs 8a8a3387fd Several enhancements to the Xen block back driver.
sys/dev/xen/blkback/blkback.c:
	o Implement front-end request coalescing.  This greatly improves the
	  performance of front-end clients that are unaware of the dynamic
	  request-size/number of requests negotiation available in the
	  FreeBSD backend driver.  This required a large restructuring
	  in how this driver records in-flight transactions and how those
	  transactions are mapped into kernel KVA.  For example, the driver
	  now includes a mini "KVA manager" that allocates ranges of
	  contiguous KVA to patches of requests that are physically
	  contiguous in the backing store so that a single bio or UIO
	  segment can be used to represent the I/O.

	o Refuse to open any backend files or devices if the system
	  has yet to mount root.  This avoids a panic.

	o Properly handle "onlined" devices.  An "onlined" backend
	  device stays attached to its backing store across front-end
	  disconnections.  This feature is intended to reduce latency
	  when a front-end does a hand-off to another driver (e.g.
	  PV aware bootloader to OS kernel) or during a VM reboot.

	o Harden the driver against a pathological/buggy front-end
	  by carefully vetting front-end XenStore data such as the
	  front-end state.

	o Add sysctls that report the negotiated number of
	  segments per-request and the number of requests that
	  can be concurrently in flight.

Submitted by:	kdm
Reviewed by:	gibbs
Sponsored by:	Spectra Logic Corporation
MFC after:	1 week
2011-06-13 20:36:29 +00:00
..
2011-05-26 10:10:10 +00:00
2011-05-19 23:13:08 +00:00
2011-05-19 23:13:08 +00:00
2010-07-28 16:24:11 +00:00
2011-02-21 09:01:34 +00:00
2011-06-11 01:19:19 +00:00
2011-02-21 09:01:34 +00:00
2011-04-22 09:44:01 +00:00
2010-10-13 17:38:23 +00:00
2010-10-13 17:38:23 +00:00
2011-02-21 09:01:34 +00:00
2011-03-25 20:53:02 +00:00
2011-04-23 23:11:44 +00:00
2011-02-21 09:01:34 +00:00
2011-04-22 13:56:21 +00:00
2011-02-21 09:01:34 +00:00
2010-10-13 14:41:52 +00:00
2011-06-08 16:00:30 +00:00
2011-04-14 07:14:22 +00:00
2011-02-21 09:01:34 +00:00
2011-06-02 05:31:54 +00:00
2011-03-24 08:56:12 +00:00
2011-05-15 13:17:08 +00:00
2010-01-28 08:41:30 +00:00
2011-04-22 09:59:16 +00:00
2011-04-22 00:44:27 +00:00
2011-02-21 09:01:34 +00:00
2011-06-06 15:33:15 +00:00
2011-06-12 23:33:08 +00:00
2011-04-22 12:46:39 +00:00
2010-11-15 05:25:51 +00:00
2010-01-28 08:41:30 +00:00
2011-02-21 09:01:34 +00:00
2011-05-03 15:58:24 +00:00
2011-05-07 04:40:44 +00:00