Skip to contentSkip to conversation

(xen) stable/for-jens-3.2 - blkback and blkfront patches for 3.2

GIT PULL Konrad Rzeszutek Wilk 1 participant 2 messages Oct 13, 2011 – Oct 14, 2011

lore
Share & tools
lore
#0 lore raw

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(-)
#1 lore raw
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!