From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 705499E5 for ; Sun, 20 Sep 2015 11:21:19 +0200 (CEST) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 65F9E2F90D8; Sun, 20 Sep 2015 09:21:18 +0000 (UTC) Received: from redhat.com (ovpn-116-29.ams2.redhat.com [10.36.116.29]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with SMTP id t8K9LFca006319; Sun, 20 Sep 2015 05:21:16 -0400 Date: Sun, 20 Sep 2015 12:21:14 +0300 From: "Michael S. Tsirkin" To: Yuanhan Liu Message-ID: <20150920121748-mutt-send-email-mst@redhat.com> References: <1442589061-19225-1-git-send-email-yuanhan.liu@linux.intel.com> <1442589061-19225-8-git-send-email-yuanhan.liu@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1442589061-19225-8-git-send-email-yuanhan.liu@linux.intel.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v5 resend 07/12] virtio: resolve for control queue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Sep 2015 09:21:19 -0000 On Fri, Sep 18, 2015 at 11:10:56PM +0800, Yuanhan Liu wrote: > From: Changchun Ouyang > > Fix the max virtio queue pair read issue. > > Control queue can't work for vhost-user mulitple queue mode, > so introduce a counter to void the dead loop when polling > the control queue. > > Signed-off-by: Changchun Ouyang > Signed-off-by: Yuanhan Liu Per virtio spec, the multiqueue feature depends on control queue - what do you mean when you say it can't work? > --- > drivers/net/virtio/virtio_ethdev.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index 465d3cd..b2f4120 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -1162,7 +1162,6 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > struct virtio_hw *hw = eth_dev->data->dev_private; > struct virtio_net_config *config; > struct virtio_net_config local_config; > - uint32_t offset_conf = sizeof(config->mac); > struct rte_pci_device *pci_dev; > > RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM < sizeof(struct virtio_net_hdr)); > @@ -1222,7 +1221,9 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > config = &local_config; > > if (vtpci_with_feature(hw, VIRTIO_NET_F_STATUS)) { > - offset_conf += sizeof(config->status); > + vtpci_read_dev_config(hw, > + offsetof(struct virtio_net_config, status), > + &config->status, sizeof(config->status)); > } else { > PMD_INIT_LOG(DEBUG, > "VIRTIO_NET_F_STATUS is not supported"); > @@ -1230,15 +1231,16 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > } > > if (vtpci_with_feature(hw, VIRTIO_NET_F_MQ)) { > - offset_conf += sizeof(config->max_virtqueue_pairs); > + vtpci_read_dev_config(hw, > + offsetof(struct virtio_net_config, max_virtqueue_pairs), > + &config->max_virtqueue_pairs, > + sizeof(config->max_virtqueue_pairs)); > } else { > PMD_INIT_LOG(DEBUG, > "VIRTIO_NET_F_MQ is not supported"); > config->max_virtqueue_pairs = 1; > } > > - vtpci_read_dev_config(hw, 0, (uint8_t *)config, offset_conf); > - > hw->max_rx_queues = > (VIRTIO_MAX_RX_QUEUES < config->max_virtqueue_pairs) ? > VIRTIO_MAX_RX_QUEUES : config->max_virtqueue_pairs; Does the patch actually do what the commit log says? It seems tobe about reading the device confing, not breaking out of a loop ... > -- > 1.9.0