From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QRmfM-0000Sa-VV for qemu-devel@nongnu.org; Wed, 01 Jun 2011 10:45:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QRmfK-0003G8-Sz for qemu-devel@nongnu.org; Wed, 01 Jun 2011 10:45:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QRllK-0002Fu-J4 for qemu-devel@nongnu.org; Wed, 01 Jun 2011 09:47:06 -0400 Message-ID: <4DE642CC.8000906@redhat.com> Date: Wed, 01 Jun 2011 16:46:52 +0300 From: Avi Kivity MIME-Version: 1.0 References: <4DD6246F.4080802@gnu.org> In-Reply-To: <4DD6246F.4080802@gnu.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] virtio scsi host draft specification, v2 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel , Stefan Hajnoczi On 05/20/2011 11:21 AM, Paolo Bonzini wrote: > Hi all, > > here is the second version of the spec. In the end I took the advice > of merging all requestq's into one. The reason for this is that I > took a look at the vSCSI device and liked its approach of using SAM > 8-byte LUNs directly. While it _is_ complex (and not yet done right > by QEMU---will send a patch for that), the scheme is actually quite > natural to implement and use, and supporting generic bus/target/LUN > topologies is good to have for passthrough, as well. > > I also added a few more features from SAM to avoid redefining the > structs in the future. > > Of course it may be that I'm completely wrong. :) Please comment on > the spec! > Virtqueues > 0:control transmitq > 1:control receiveq > 2:requestq > Shouldn't we plan multiqueue for this from day 1? > Requests have the following format: > > struct virtio_scsi_req_cmd { > u8 lun[8]; > u64 id; > u8 task_attr; > u8 prio; > u8 crn; > u32 num_dataout, num_datain; > char cdb[]; > char data[][num_dataout+num_datain]; > u8 sense[]; > u32 sense_len; > u32 residual; > u16 status_qualifier; > u8 status; > u8 response; > }; flags? room for growth? -- error compiling committee.c: too many arguments to function