summaryrefslogtreecommitdiffstats
path: root/sys/dev/isci
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2013-06-26 20:39:07 +0000
committergibbs <gibbs@FreeBSD.org>2013-06-26 20:39:07 +0000
commite7f9e472fe57a341b8332bd98447ab01e94e65a3 (patch)
tree016ccaed3fa2945d44f8e207e7d9663a103a5b1a /sys/dev/isci
parentef282086af7ae18f6589ca446e36e606ca79a751 (diff)
downloadFreeBSD-src-e7f9e472fe57a341b8332bd98447ab01e94e65a3.zip
FreeBSD-src-e7f9e472fe57a341b8332bd98447ab01e94e65a3.tar.gz
In the Xen block front driver, take advantage of backends that
support cache flush and write barrier commands. sys/dev/xen/blkfront/block.h: Add per-command flag that specifies that the I/O queue must be frozen after this command is dispatched. This is used to implement "single-stepping". Remove the unused per-command flag that indicates a polled command. Add block device instance flags to record backend features. Add a block device instance flag to indicate the I/O queue is frozen until all outstanding I/O completes. Enhance the queue API to allow the number of elements in a queue to be interrogated. Prefer "inline" to "__inline". sys/dev/xen/blkfront/blkfront.c: Formalize queue freeze semantics by adding methods for both global and command-associated queue freezing. Provide mechanism to freeze the I/O queue until all outstanding I/O completes. Use this to implement barrier semantics (BIO_ORDERED) when the backend does not support BLKIF_OP_WRITE_BARRIER commands. Implement BIO_FLUSH as either a BLKIF_OP_FLUSH_DISKCACHE command or a 0 byte write barrier. Currently, all publicly available backends perform a diskcache flush when processing barrier commands, and this frontend behavior matches what is done in Linux. Simplify code by using new queue length API. Report backend features during device attach and via sysctl. Submitted by: Roger Pau Monné Submitted by: gibbs (Merge with new driver queue API, sysctl support)
Diffstat (limited to 'sys/dev/isci')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud