[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 13/19] fuzz: add ctrl vq support to virtio-net in
From: |
Oleinik, Alexander |
Subject: |
Re: [Qemu-devel] [RFC 13/19] fuzz: add ctrl vq support to virtio-net in libqos |
Date: |
Thu, 25 Jul 2019 17:05:25 +0000 |
On Thu, 2019-07-25 at 12:25 -0400, John Snow wrote:
>
> On 7/24/19 11:23 PM, Oleinik, Alexander wrote:
> > Signed-off-by: Alexander Oleinik <address@hidden>
>
> Is there some explanation for why the below patch does what the
> subject
> line claims for the uninitiated?
When multiqueue mode (VIRTIO_NET_F_MQ) is disabled, virtio-net sets up
three queues. 0:receiveq, 1:transmitq and 2:controlq.
> I don't know why increasing the number of queues from 2 to 3 here is
> correct in the general case, OR why it would "add ctrl vq support".
> (Or what it has to do with fuzzing, in general.)
Prior to the change, accessing the ctrl vq through QOS, would trigger a
segfault, since only two queues were allocated to QVirtioDevice*
interface->queues.
Also, when VIRTIO_NET_F_MQ is enabled, the number of queues is 2*N + 1,
so I think in that case n->n_queues is also short by one in the code
below.
> [Only responding because this landed in tests/libqos, which I do try
> to
> keep an eye on, but this patch is opaque to me. --js]
>
> > ---
> > tests/libqos/virtio-net.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tests/libqos/virtio-net.c b/tests/libqos/virtio-net.c
> > index 66405b646e..247a0a17a8 100644
> > --- a/tests/libqos/virtio-net.c
> > +++ b/tests/libqos/virtio-net.c
> > @@ -51,7 +51,7 @@ static void virtio_net_setup(QVirtioNet
> > *interface)
> > if (features & (1u << VIRTIO_NET_F_MQ)) {
> > interface->n_queues = qvirtio_config_readw(vdev, 8) * 2;
> > } else {
> > - interface->n_queues = 2;
> > + interface->n_queues = 3;
> > }
> >
> > interface->queues = g_new(QVirtQueue *, interface->n_queues);
> >
- [Qemu-devel] [RFC 09/19] fuzz: use mtree_info to find mapped addresses, (continued)
- [Qemu-devel] [RFC 09/19] fuzz: use mtree_info to find mapped addresses, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 10/19] fuzz: expose real_main (aka regular vl.c:main), Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 11/19] fuzz: add direct send/receive in qtest client, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 14/19] fuzz: hard-code a main-loop timeout, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 13/19] fuzz: add ctrl vq support to virtio-net in libqos, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 15/19] fuzz: add fuzz accelerator type, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 18/19] fuzz: Add virtio-net tx and ctrl fuzz targets, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 16/19] fuzz: add general fuzzer entrypoints, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 17/19] fuzz: add general qtest fuzz target, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 19/19] fuzz: Add documentation about the fuzzer to docs/, Oleinik, Alexander, 2019/07/24
- Re: [Qemu-devel] [RFC 00/19] Add virtual device fuzzing support, no-reply, 2019/07/24
- Re: [Qemu-devel] [RFC 00/19] Add virtual device fuzzing support, Stefan Hajnoczi, 2019/07/26