Thread (8 messages) 8 messages, 4 authors, 2012-10-12

Re: [PATCH 0/3] virtio-net: inline header support

flat view

From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2012-10-09 07:27:35
Also in: kvm, lkml, virtualization

Il 09/10/2012 06:59, Rusty Russell ha scritto:
Paolo Bonzini [off-list ref] writes:
quoted
Il 05/10/2012 07:43, Rusty Russell ha scritto:
quoted
That's good.  But virtio_blk's scsi command is insoluble AFAICT.  As I
said to Anthony, the best rules are "always" and "never", so I'd really
rather not have to grandfather that in.
It is, but we can add a rule that if the (transport) flag
VIRTIO_RING_F_ANY_HEADER_SG is set, the cdb field is always 32 bytes in
virtio-blk.
Could we do that?  It's the cmd length I'm concerned about; is it always
32 in practice for some reason?
It is always 32 or less except in very obscure cases that are pretty
much confined to iSCSI.  We don't care about the obscure cases, and the
extra bytes don't hurt.

BTW, 32 is the default cdb_size used by virtio-scsi.
Currently qemu does:

    struct sg_io_hdr hdr;
    memset(&hdr, 0, sizeof(struct sg_io_hdr));
    hdr.interface_id = 'S';
    hdr.cmd_len = req->elem.out_sg[1].iov_len;
    hdr.cmdp = req->elem.out_sg[1].iov_base;
    hdr.dxfer_len = 0;

If it's a command which expects more output data, there's no way to
guess where the boundary is between that command and the data.
Yep, so I understood the problem right.

Paolo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help