From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: [PATCH 7/9] net/virtio: rationalize setting of Rx/Tx handlers Date: Fri, 1 Sep 2017 20:31:06 +0800 Message-ID: <20170901123106.GW9736@yliu-home> References: <20170831134015.1383-1-olivier.matz@6wind.com> <20170831134015.1383-8-olivier.matz@6wind.com> <20170901091916.GT9736@yliu-home> <20170901095216.kqx7lwdiktq7y5zs@neon> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, maxime.coquelin@redhat.com, stephen@networkplumber.org, stable@dpdk.org To: Olivier MATZ Return-path: Received: from mail-pg0-f44.google.com (mail-pg0-f44.google.com [74.125.83.44]) by dpdk.org (Postfix) with ESMTP id D1B6056A1 for ; Fri, 1 Sep 2017 14:31:14 +0200 (CEST) Received: by mail-pg0-f44.google.com with SMTP id b8so160291pgn.5 for ; Fri, 01 Sep 2017 05:31:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20170901095216.kqx7lwdiktq7y5zs@neon> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, Sep 01, 2017 at 11:52:17AM +0200, Olivier MATZ wrote: > > > @@ -1534,7 +1554,6 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > > > RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM < sizeof(struct virtio_net_hdr_mrg_rxbuf)); > > > > > > eth_dev->dev_ops = &virtio_eth_dev_ops; > > > - eth_dev->tx_pkt_burst = &virtio_xmit_pkts; > > > > > > if (rte_eal_process_type() == RTE_PROC_SECONDARY) { > > > if (!hw->virtio_user_dev) { > > > @@ -1544,12 +1563,8 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > > > } > > > > > > virtio_set_vtpci_ops(hw); > > > - if (hw->use_simple_rxtx) { > > > - eth_dev->tx_pkt_burst = virtio_xmit_pkts_simple; > > > - eth_dev->rx_pkt_burst = virtio_recv_pkts_vec; > > > - } else { > > > - rx_func_get(eth_dev); > > > - } > > > + set_rxtx_funcs(eth_dev); > > > > No need to invoke it here? > > I wanted to stay consistent with previous code. > > I'm not very used to work with secondary processes, so I'm not 100% it > is ok, but in my understanding, in that case the configuration is done > first by the primary process, and the secondary the pointers to the > rx/tx funcs. I suppose their value can be different than primary ones. It probably needs some testing, but I think it should be okay, because the rx/tx funcs will always be updated at dev_start in this patch. --yliu