(xen) stable/for-jens-3.2 - blkback and blkfront patches for 3.2
Hey Jens,
Please pull the following git tree in your 3.2 drivers tree:
git pull git://oss.oracle.com/git/kwilk/xen.git stable/for-jens-3.2
which has a couple of bug fixes and two new features for Xen blkfront and blkback.
The bug-fixes are the normal variety - on error path we did not the proper thing (leak memory), on entry to some functions we did not check whether we should just ignore the request (b/c we might not support it), and we also forgot to increment the write sector count.
There are also two new features:
- discard support, aka trim/unmap. We export from the backend the discard alignment, granularity and do normal REQ_DISCARD. We do have patches for the REQ_SECURE type - but not the hardware to test it so holding on the secure discard until I get my hands on it.
- barrier (pre 2.6.38 kernel) support. The backend supports the FLUSH type operation but to support older kernels that did barriers we have implemented a drain technique that counts all of the bio's in flight and waits until they are completed and then sends a FLUSH.
In regards to testing, I've been testing this on Intel SSD, Western Digital SSD. But sadly all of them export the block size as 512 - is there a good SSD or disk where it would export it as something more than 512?
And here is the credit list:
Jan Beulich (1):
xen-blkback: use kzalloc() in favor of kmalloc()+memset()
Joe Jin (1):
xen-blkback: fixed indentation and comments
Konrad Rzeszutek Wilk (4):
xen-blkfront: If no barrier or flush is supported, use invalid operation. xen/blkback: Support 'feature-barrier' aka old-style BARRIER requests. xen/blkback: Report VBD_WSECT (wr_sect) properly.
xen/blkback: Fix the inhibition to map pages when discarding sector ranges.
Laszlo Ersek (1):
xen-blkfront: plug device number leak in xlblk_init() error path
Li Dongyang (4):
xen-blkfront: add BLKIF_OP_DISCARD and discard request struct
xen-blkback: Implement discard requests ('feature-discard')
xen-blkfront: Handle discard requests.
xen-blkfront: fix a deadlock while handling discard response
The diffstat:
drivers/block/xen-blkback/blkback.c | 130 +++++++++++++++++++++++++++++------ drivers/block/xen-blkback/common.h | 100 ++++++++++++++++++++++----- drivers/block/xen-blkback/xenbus.c | 80 +++++++++++++++++++++- drivers/block/xen-blkfront.c | 123 ++++++++++++++++++++++++++------- include/xen/interface/io/blkif.h | 36 ++++++++++ 5 files changed, 403 insertions(+), 66 deletions(-)
Quoted 1 line
xen/blkback: Fix the inhibition to map pages when discarding sector ranges.
And I accidently messed that up. I put in a patch that had == instead of !=.
So on top of these patches I've also stuck this in the git tree:
git 53289f32632cca41c81b71b928f3d126c5564342
Author: Konrad Rzeszutek Wilk <[email protected]> Date: Fri Oct 14 12:13:05 2011 -0400
xen/blkback: Check for proper operation.
The patch titled: "xen/blkback: Fix the inhibition to map pages when discarding sector ranges." had the right idea except that it used the wrong comparison operator. It had == instead of !=.
This fixes the bug where all operations would have been stalled.
Please make sure you have that when you pull.
Thanks!