From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E476241C32; Tue, 7 Feb 2023 19:08:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF31F4021F; Tue, 7 Feb 2023 19:08:55 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id A411E40151 for ; Tue, 7 Feb 2023 19:08:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675793334; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SBbApA61E+5fhTTdBDFBYWJpHF3YWzWykEsSY1E/nsY=; b=ZxaipWE6OI4Fmh0vNhu5p16s+3Xv3+5dNAhEeMEaZ2elaLMMKT5dDcu2km038Fx6BmRInJ hmXVly9X6mzGB++BzMQS7Wd/WuW2lS9dXptow47nc0Mc8w0IT+HpJBUQgFfYgOeNW7j4TH NK5ySr37Fw/wD2+C9e6NBzrGJjtedI8= Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-556-zoU2HEzUMi6OcrKY-_sOqg-1; Tue, 07 Feb 2023 13:08:45 -0500 X-MC-Unique: zoU2HEzUMi6OcrKY-_sOqg-1 Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-4fa63c84621so154046587b3.20 for ; Tue, 07 Feb 2023 10:08:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SBbApA61E+5fhTTdBDFBYWJpHF3YWzWykEsSY1E/nsY=; b=l2kt6/S34d1DXWQ3e/ILHAHue1ZCNM1gpI5QdoT+SyAjgN+yyW1XfgnpUuW4zSzatW NKOQ4Q36TUSZyjl9YQWwKqPscAiSbzVqhjiAHWTLiK14DSXSSd4uwl6QVipm8PQCr4nn PowNA4qlYKDrdCzcgNNQRf/3Fq7VbKF1AxeIQD07e8IfU08/bnwgKLdsafbBICkLgUrY tGLGrcs9UQqRoTO+WQ9bX0m1J2yVgge/gJS4QrDrSNY63jeos3Zohdymf4/vGNuriiDz T10ale17M497K6Qa7A9PqqIVdXyDm5wthPAeSpzlaPqgNdI3r4iKFUGf+2EFO8ZxnoOh PBNg== X-Gm-Message-State: AO0yUKXi58PRpQI8ZjoaF0haq+28EkWk7jy6UMXovs7OMbLeFmuBn5yn HorkZFrlgFout5rNl3KHdndN4KSjU7pvAKwVpYmiYZFHojfZUpz28qHBVExM/GBJuly2hFBaJ39 Z2TXpfHDXki2VnZ5e5iA= X-Received: by 2002:a81:6541:0:b0:464:4ea1:3baa with SMTP id z62-20020a816541000000b004644ea13baamr405672ywb.302.1675793324961; Tue, 07 Feb 2023 10:08:44 -0800 (PST) X-Google-Smtp-Source: AK7set+5sU4JsXXeKZ6qLUh/nhIRF/nBMJp7IfPPnx1LndvGQBbyVueFF/UwEulOX45P5eI+4oXTfRFkuz/20fz+csk= X-Received: by 2002:a81:6541:0:b0:464:4ea1:3baa with SMTP id z62-20020a816541000000b004644ea13baamr405669ywb.302.1675793324729; Tue, 07 Feb 2023 10:08:44 -0800 (PST) MIME-Version: 1.0 References: <20230207151747.245808-1-maxime.coquelin@redhat.com> <20230207151747.245808-18-maxime.coquelin@redhat.com> In-Reply-To: <20230207151747.245808-18-maxime.coquelin@redhat.com> From: Eugenio Perez Martin Date: Tue, 7 Feb 2023 19:08:08 +0100 Message-ID: Subject: Re: [PATCH v2 17/21] net/virtio-user: send shadow virtqueue info to the backend To: Maxime Coquelin Cc: dev@dpdk.org, chenbo.xia@intel.com, david.marchand@redhat.com, stephen@networkplumber.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Tue, Feb 7, 2023 at 4:18 PM Maxime Coquelin wrote: > > This patch adds sending the shadow control queue info > to the backend. > > Signed-off-by: Maxime Coquelin > Reviewed-by: Chenbo Xia Acked-by: Eugenio P=C3=A9rez > --- > .../net/virtio/virtio_user/virtio_user_dev.c | 28 ++++++++++++++++--- > 1 file changed, 24 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/n= et/virtio/virtio_user/virtio_user_dev.c > index 16a0e07413..1a5386a3f6 100644 > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c > @@ -66,6 +66,18 @@ virtio_user_kick_queue(struct virtio_user_dev *dev, ui= nt32_t queue_sel) > .flags =3D 0, /* disable log */ > }; > > + if (queue_sel =3D=3D dev->max_queue_pairs * 2) { > + if (!dev->scvq) { > + PMD_INIT_LOG(ERR, "(%s) Shadow control queue expe= cted but missing", > + dev->path); > + goto err; > + } > + > + /* Use shadow control queue information */ > + vring =3D &dev->scvq->vq_split.ring; > + pq_vring =3D &dev->scvq->vq_packed.ring; > + } > + > if (dev->features & (1ULL << VIRTIO_F_RING_PACKED)) { > addr.desc_user_addr =3D > (uint64_t)(uintptr_t)pq_vring->desc; > @@ -118,9 +130,13 @@ static int > virtio_user_queue_setup(struct virtio_user_dev *dev, > int (*fn)(struct virtio_user_dev *, uint32_t)) > { > - uint32_t i; > + uint32_t i, nr_vq; > > - for (i =3D 0; i < dev->max_queue_pairs * 2; ++i) { > + nr_vq =3D dev->max_queue_pairs * 2; > + if (dev->hw_cvq) > + nr_vq++; > + > + for (i =3D 0; i < nr_vq; i++) { > if (fn(dev, i) < 0) { > PMD_DRV_LOG(ERR, "(%s) setup VQ %u failed", dev->= path, i); > return -1; > @@ -381,11 +397,15 @@ virtio_user_dev_init_mac(struct virtio_user_dev *de= v, const char *mac) > static int > virtio_user_dev_init_notify(struct virtio_user_dev *dev) > { > - uint32_t i, j; > + uint32_t i, j, nr_vq; > int callfd; > int kickfd; > > - for (i =3D 0; i < dev->max_queue_pairs * 2; i++) { > + nr_vq =3D dev->max_queue_pairs * 2; > + if (dev->hw_cvq) > + nr_vq++; > + > + for (i =3D 0; i < nr_vq; i++) { > /* May use invalid flag, but some backend uses kickfd and > * callfd as criteria to judge if dev is alive. so finall= y we > * use real event_fd. > -- > 2.39.1 >