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


Reply via email to