[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/10] virtio: move VirtQueueElement at the begi
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 01/10] virtio: move VirtQueueElement at the beginning of the structs |
Date: |
Tue, 19 Jan 2016 14:22:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 |
On 19/01/2016 13:09, Cornelia Huck wrote:
>> > The next patch will make virtqueue_pop/vring_pop allocate memory for a
> s/will make/will make it possible for/
>
> ?
This patch will actually do that. This patch makes it possible.
> I had to spend some time grepping through the code to find that blk and
> scsi (and gpu, which already had elem at the beginning of its
> structure) are the only ones that work like this and that other devices
> do not need any change.
>
>> > "subclass" of VirtQueueElement. For this to work, VirtQueueElement
>> > must be the first field in the containing struct.
So...
The next patch will make virtqueue_pop/vring_pop allocate memory for the
VirtQueueElement. In some cases (blk, scsi, gpu) the device wants to
extend VirtQueueElement with device-specific fields and, until now, the
place of the VirtQueueElement within the containing struct didn't
matter. When allocating the entire block in virtqueue_pop/vring_pop,
however, the containing struct must basically be a "subclass" of
VirtQueueElement, with the VirtQueueElement as the first field. Make
that the case for blk and scsi; gpu is already doing it.
Paolo
>> > Signed-off-by: Paolo Bonzini <address@hidden>
>> > ---
>> > hw/scsi/virtio-scsi.c | 3 +--
>> > include/hw/virtio/virtio-blk.h | 2 +-
>> > include/hw/virtio/virtio-scsi.h | 13 ++++++-------
>> > 3 files changed, 8 insertions(+), 10 deletions(-)
> Otherwise,
>
> Reviewed-by: Cornelia Huck <address@hidden>
>
>
>
- [Qemu-devel] [PATCH 00/10] virtio/vring: optimization patches, Paolo Bonzini, 2016/01/15
- [Qemu-devel] [PATCH 03/10] virtio: introduce qemu_get/put_virtqueue_element, Paolo Bonzini, 2016/01/15
- [Qemu-devel] [PATCH 05/10] virtio: slim down allocation of VirtQueueElements, Paolo Bonzini, 2016/01/15
- [Qemu-devel] [PATCH 06/10] vring: slim down allocation of VirtQueueElements, Paolo Bonzini, 2016/01/15
- [Qemu-devel] [PATCH 04/10] virtio: introduce virtqueue_alloc_element, Paolo Bonzini, 2016/01/15
- [Qemu-devel] [PATCH 08/10] virtio: cache used_idx in a VirtQueue field, Paolo Bonzini, 2016/01/15