On 06/01/2011 03:46 PM, Avi Kivity wrote:

Virtqueues
     0:control transmitq
     1:control receiveq
     2:requestq


Shouldn't we plan multiqueue for this from day 1?

How would you do multiqueue? Just provide N queues, and the device can place requests for any LUN on any queue?

If that's correct, it doesn't sound too hard to do, but also doesn't sound problematic to fit it later. So I'm quite ambivalent

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?

Feature bits can be used to negotiate the exact format of the request. I don't expect many changes, since we're closely mimicking the SCSI requests.

Paolo

Reply via email to