qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH 5/5] scsi-bsg: Add initial support for BSG based


From: Paolo Bonzini
Subject: [Qemu-devel] Re: [PATCH 5/5] scsi-bsg: Add initial support for BSG based SCSIDeviceInfo
Date: Wed, 24 Nov 2010 10:07:47 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101103 Fedora/1.0-0.33.b2pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.6

On 11/24/2010 09:40 AM, Nicholas A. Bellinger wrote:
From: Nicholas Bellinger<address@hidden>

This patch adds initial support for using the Linux BSG interface with 
write/read vectored
AIO as a QEMU backstore (SCSIDeviceInfo) with hw/scsi-bus.c compatible HBA 
emulation.

So far it has been tested with x86_64 host and guest using hw/megasas.c and 
TCM_Loop LLD
Port LUNs.  Because this patch uses struct iovec for struct 
sg_io_v4->d[out,in]_xferp payloads,
which currently requires a patch to linux/block/bsg.c:bsg_map_hdr() in order to 
setup the
user ->  kernel iovecs.   This patch can be found in lio-core-2.6.git here:

commit fec4e8457c744de50e1ead69a36d5c4ee089d1ac
Author: Nicholas Bellinger<address@hidden>
Date:   Sun Jun 13 23:13:20 2010 -0700

     [BSG]: Add support for struct sg_io_v4->d[out,in]_iovec_count

This also will only currently work with paired user/kernel (eg: 64bit user / 
64bit kernel)
because of different pointer sizes in struct iovec->iov_base.

There are also two FIXMEs in hw/scsi-bsg.c:bsg_generic_initfn() related to 
extraction of
SCSI LUN and device type values using BSG and required by QEMU-KVM.

Any reason why this should be a different driver than scsi-generic, i.e. why the scsi-generic should not switch automatically between SG and BSG depending on the kind of device being opened?

In fact, there is no reason why scsi-generic should use bounce buffers rather than sg_iovec_t, so that most of the differences between scsi-generic and scsi-bsg would go away.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]