From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44969 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PLAy1-0003KN-EW for qemu-devel@nongnu.org; Wed, 24 Nov 2010 03:44:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PLAy0-0007ny-7W for qemu-devel@nongnu.org; Wed, 24 Nov 2010 03:44:41 -0500 Received: from smtp127.sbc.mail.sp1.yahoo.com ([69.147.65.186]:39989) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1PLAxz-0007np-SA for qemu-devel@nongnu.org; Wed, 24 Nov 2010 03:44:40 -0500 From: "Nicholas A. Bellinger" Date: Wed, 24 Nov 2010 00:44:34 -0800 Message-Id: <1290588274-8975-1-git-send-email-nab@linux-iscsi.org> Subject: [Qemu-devel] [PATCH 0/5]: Add hw/scsi-bsg.c backend driver List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hannes Reinecke , Kevin Wolf Cc: Stefan Hajnoczi , qemu-devel , Nicholas Bellinger , Gerd Hoffmann , Paolo Bonzini , Christoph Hellwig From: Nicholas Bellinger Greetings QEMU SCSI / BLOCK folks, This series adds rebased support for the hw/scsi-bsg.c backstore for scsi-bus compatible HBA emulation in QEMU-KVM on Linux hosts supporting the BSG driver against current mainline qemu-kvm.git/master code. This patch is available from the scsi-bsg branch in the megasas/scsi friendly QEMU-KVM tree at: http://git.kernel.org/?p=virt/kvm/nab/qemu-kvm.git;a=shortlog;h=refs/heads/megasas-upstream-v1 which includes Hannes's recent patch series posted recently against mainline v0.13.0 here: Re: [Qemu-devel] [PATCH] Megasas HBA emulation and SCSI update v.2 http://lists.gnu.org/archive/html/qemu-devel/2010-11/msg02018.html Note that in order for BSG I/O to function using vectored AIO a kernel patch to linux/block/bsg.c:bsg_map_hdr() is currently required running on a bit paired user/kernel enviroment. The kernel patch in question is here: http://marc.info/?l=linux-scsi&m=127649585524598&w=2 The first three patches involve updating block code to support the BSG backstore for scsi-bsg. The forth patch adds the minor changes to hw/scsi-bus.c and hw/scsi-disk.c in order to function with scsi-bsg. And the fifth patch adds the main hw/scsi-bsg.c logic necessary to run the new struct SCSIDeviceInfo and for BSG AIO using struct iovec and paio_submit_len() to function. The scsi-bsg.c code has been refactored to follow the modern SCSIDeviceInfo->alloc_req_iov() and incoming struct iovec * memory for underlying SCSIRequest SGLs So far this has been tested with v2 8708EM2 HBA Emulation on 0.13.0 on a .37-rc2 KVM host with TCM_Loop FILEIO backstores into a Debian Lenny v2.6.26 x86_64 KVM guest with XFS filesystem mounts. Signed-off-by: Nicholas A. Bellinger Nicholas Bellinger (5): block: Add top level BSG support block: Add BSG qemu_open() in block/raw.c:raw_open() block: Add paio_submit_len() non sector sized AIO scsi: Add BSG checks into scsi-bus and scsi-disk scsi-bsg: Add initial support for BSG based SCSIDeviceInfo Makefile.objs | 2 +- block.c | 7 +- block.h | 1 + block/raw-posix-aio.h | 3 + block/raw-posix.c | 65 +++++- block/raw.c | 21 ++ block_int.h | 6 + hw/scsi-bsg.c | 720 +++++++++++++++++++++++++++++++++++++++++++++++++ hw/scsi-bus.c | 3 +- hw/scsi-disk.c | 5 + posix-aio-compat.c | 29 ++ 11 files changed, 855 insertions(+), 7 deletions(-) create mode 100644 hw/scsi-bsg.c