Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-3] src/sys/arch/xen/xen



Module Name:    src
Committed By:   tron
Date:           Mon Aug 15 14:57:19 UTC 2005

Modified Files:
        src/sys/arch/xen/xen [netbsd-3]: xbdback.c

Log Message:
Pull up revision 1.12 (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@localhost>:
        * 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.4.2.6 -r1.4.2.7 src/sys/arch/xen/xen/xbdback.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index