Subject: CVS commit: [netbsd-3] src/sys/arch/xen/include
To: None <source-changes@NetBSD.org>
From: Matthias Scheler <tron@netbsd.org>
List: source-changes
Date: 08/15/2005 14:57:12
Module Name: src
Committed By: tron
Date: Mon Aug 15 14:57:12 UTC 2005
Modified Files:
src/sys/arch/xen/include [netbsd-3]: xen_shm.h
Log Message:
Pull up revision 1.4 (requested by tls in ticket #656):
Improvements to xbdback (the domain 0 driver that provides "xbd" virtual
disks to other domains) from Jed Davis, <jld@panix.com>:
* Issue multiple requests when necessary rather than
assuming that arbitrary requests can be mapped into single
contiguous virtual address ranges.
* Don't assume that all data for a request is consecutive
in memory. With some client OSes, it's not.
The above two changes fix data corruption issues with Linux
clients with certain filesystem block sizes.
* Gracefully handle memory or pool allocation failures after
beginning to handle a request from the ring.
* Merge contiguous requests to avoid the "64K turns into 44K + 20K
and doubles the transactions per second at the disk" problem
caused by the 11-page limit caused by the structure of Xen
ring entries. This causes a very slight performance decrease
for sequential 64K I/O if the disk is not already saturated with
requests (about 1%) but halves the transactions per second we
hit the disk with -- or better. It even compensates for bizarre
Linux behaviour like breaking long requests up into 5.5K pieces.
* Probably some stuff I forgot to mention.
Disk throughput (though not latency) is now much, much closer to the
"raw hardware" case than it was before.
To generate a diff of this commit:
cvs rdiff -r1.2.2.1 -r1.2.2.2 src/sys/arch/xen/include/xen_shm.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.