From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 07F79A2E1B for ; Tue, 3 Sep 2019 20:14:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7F95F1EC6E; Tue, 3 Sep 2019 20:14:52 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 1FB6E1EC6A for ; Tue, 3 Sep 2019 20:14:51 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1C03687633; Tue, 3 Sep 2019 18:14:50 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (unknown [10.18.25.8]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F28625D9E1; Tue, 3 Sep 2019 18:14:48 +0000 (UTC) From: Aaron Conole To: Andrew Rybchenko Cc: Thomas Monjalon , Ferruh Yigit , Jan Viktorin , , Ivan Ilchenko References: <1566915962-5472-1-git-send-email-arybchenko@solarflare.com> <1567519051-28189-1-git-send-email-arybchenko@solarflare.com> Date: Tue, 03 Sep 2019 14:14:48 -0400 In-Reply-To: <1567519051-28189-1-git-send-email-arybchenko@solarflare.com> (Andrew Rybchenko's message of "Tue, 3 Sep 2019 14:56:34 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 03 Sep 2019 18:14:50 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH v2 00/54] ethdev: change rte_eth_dev_info_get() return value to int X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Andrew Rybchenko writes: > It is the first patch series to get rid of void returning functions > in ethdev in accordance with deprecation notice [1]. > > Functions which return void are bad since they do not provide explicit > information to the caller if everything is OK or not. It was bugs in > rte_eth_dev_info_get() recently which kept device information > uninitialized if port ID is invalid. > > The patch series updates rte_eth_dev_info_get() straightforward > to simply return error if port ID is invalid or driver does not > provide corresponding callback. In the future default callback > which fills in generic non driver specific information could be > added to help secondary processes cases when driver has no > callback in secondary process. Also the idea to make the callback > mandatory should be considered. > > Patches to update examples are kept separately to simplify review, > but could be squashed on apply since logically it is the same > change in all applicable examples. > > [1] https://patches.dpdk.org/patch/56969/ Some errors with the series: https://travis-ci.com/ovsrobot/dpdk/builds/125755853 > v2: > - add a patch to change dev_infos_get prototype to return int as well > - fix issue with ring_pmd_autotest (just inverted assert condition) > - add missing net/failsafe patch > - fix net/netsvc patch in accordance with review notes from Stephen > - fix app/testpmd patch in accordance with review notes from Ferruh > - add net/bnxt ack > > Andrew Rybchenko (1): > ethdev: remove redundunt device info cleanup before get > > Ivan Ilchenko (53): > ethdev: change rte_eth_dev_info_get() return value to int > app/testpmd: check status of getting ethdev info > app/eventdev: check status of getting ethdev info > kni: check status of getting ethdev info > latency: check status of getting ethdev info > pdump: check status of getting ethdev info > ring: check status of getting ethdev info > app/procinfo: check status of getting ethdev info > app/test: check status of getting ethdev info in bonding > app/test: check ethdev info get result in event Rx adapter > net/bnxt: check status of getting ethdev info > net/bonding: check status of getting ethdev info > net/failsafe: check status of getting ethdev info > net/netvsc: check status of getting ethdev info > net/softnic: check status of getting ethdev info > ethdev: change eth_dev_infos_get_t to return int > examples/rxtx_callbacks: check status of getting ethdev info > examples/l3fwd: check status of getting ethdev info > examples/qos_meter: check status of getting ethdev info > examples/ip_frag: check status of getting ethdev info > examples/performance-thread: check dev info get result > examples/vmdq: check status of getting ethdev info > examples/distributor: check status of getting ethdev info > examples/l3fwd-acl: check status of getting ethdev info > examples/vm_power: check status of getting ethdev info > examples/qos_sched: check status of getting ethdev info > examples/flow_filtering: check status of getting ethdev info > examples/l3fwd-power: check status of getting ethdev info > examples/l2fwd: check status of getting ethdev info > examples/skeleton: check status of getting ethdev info > examples/vmdq_dcb: check status of getting ethdev info > examples/ipv4_multicast: check status of getting ethdev info > examples/l2fwd-jobstats: check status of getting ethdev info > examples/bond: check status of getting ethdev info > examples/eventdev: check status of getting ethdev info > examples/ip_reassembly: check status of getting ethdev info > examples/vhost: check status of getting ethdev info > examples/ptpclient: check status of getting ethdev info > examples/link_status_interrupt: check dev info get result > examples/tep_termination: check dev info get result > examples/server_node_efd: check dev info get result > examples/flow_classify: check status of getting ethdev info > examples/packet_ordering: check dev info get result > examples/l2fwd-crypto: check status of getting ethdev info > examples/multi_process: check status of getting ethdev info > examples/ipsec-secgw: check status of getting ethdev info > examples/netmap_compat: check status of getting ethdev info > examples/l2fwd-keepalive: check dev info get result > examples/ip_pipeline: check status of getting ethdev info > examples/load_balancer: check status of getting ethdev info > examples/kni: check status of getting ethdev info > examples/ethtool: check status of getting ethdev info > examples/exception_path: check status of getting ethdev info > > app/proc-info/main.c | 15 ++- > app/test-eventdev/test_perf_common.c | 8 +- > app/test-eventdev/test_pipeline_common.c | 9 +- > app/test-pmd/cmdline.c | 124 +++++++++++++++++++----- > app/test-pmd/cmdline_flow.c | 5 +- > app/test-pmd/config.c | 80 ++++++++++++--- > app/test-pmd/parameters.c | 8 +- > app/test-pmd/testpmd.c | 40 ++++++-- > app/test-pmd/testpmd.h | 3 + > app/test-pmd/util.c | 28 +++++- > app/test/test_event_eth_rx_adapter.c | 4 +- > app/test/test_kni.c | 27 +++++- > app/test/test_link_bonding_rssconf.c | 33 ++++++- > app/test/test_pmd_ring.c | 9 +- > app/test/virtual_pmd.c | 4 +- > doc/guides/rel_notes/deprecation.rst | 1 - > doc/guides/rel_notes/release_19_11.rst | 5 +- > drivers/net/af_packet/rte_eth_af_packet.c | 4 +- > drivers/net/af_xdp/rte_eth_af_xdp.c | 4 +- > drivers/net/ark/ark_ethdev.c | 8 +- > drivers/net/atlantic/atl_ethdev.c | 11 ++- > drivers/net/avp/avp_ethdev.c | 8 +- > drivers/net/axgbe/axgbe_ethdev.c | 6 +- > drivers/net/bnx2x/bnx2x_ethdev.c | 4 +- > drivers/net/bnxt/bnxt_ethdev.c | 12 ++- > drivers/net/bnxt/rte_pmd_bnxt.c | 122 ++++++++++++++++++++--- > drivers/net/bonding/rte_eth_bond_api.c | 10 +- > drivers/net/bonding/rte_eth_bond_pmd.c | 40 +++++++- > drivers/net/cxgbe/cxgbe_ethdev.c | 15 ++- > drivers/net/cxgbe/cxgbe_pfvf.h | 4 +- > drivers/net/dpaa/dpaa_ethdev.c | 16 +-- > drivers/net/dpaa2/dpaa2_ethdev.c | 4 +- > drivers/net/e1000/em_ethdev.c | 12 ++- > drivers/net/e1000/igb_ethdev.c | 30 ++++-- > drivers/net/ena/ena_ethdev.c | 8 +- > drivers/net/enetc/enetc_ethdev.c | 4 +- > drivers/net/enic/enic_ethdev.c | 4 +- > drivers/net/failsafe/failsafe_ops.c | 9 +- > drivers/net/fm10k/fm10k_ethdev.c | 8 +- > drivers/net/hinic/hinic_pmd_ethdev.c | 4 +- > drivers/net/i40e/i40e_ethdev.c | 8 +- > drivers/net/i40e/i40e_ethdev_vf.c | 8 +- > drivers/net/i40e/i40e_vf_representor.c | 4 +- > drivers/net/iavf/iavf_ethdev.c | 6 +- > drivers/net/ice/ice_ethdev.c | 8 +- > drivers/net/ipn3ke/ipn3ke_representor.c | 4 +- > drivers/net/ixgbe/ixgbe_ethdev.c | 21 ++-- > drivers/net/ixgbe/ixgbe_vf_representor.c | 4 +- > drivers/net/kni/rte_eth_kni.c | 4 +- > drivers/net/liquidio/lio_ethdev.c | 4 +- > drivers/net/memif/rte_eth_memif.c | 4 +- > drivers/net/mlx4/mlx4.h | 4 +- > drivers/net/mlx4/mlx4_ethdev.c | 4 +- > drivers/net/mlx5/mlx5.h | 2 +- > drivers/net/mlx5/mlx5_ethdev.c | 4 +- > drivers/net/mvneta/mvneta_ethdev.c | 4 +- > drivers/net/mvpp2/mrvl_ethdev.c | 4 +- > drivers/net/netvsc/hn_ethdev.c | 16 ++- > drivers/net/netvsc/hn_var.h | 2 +- > drivers/net/netvsc/hn_vf.c | 15 ++- > drivers/net/nfb/nfb_ethdev.c | 4 +- > drivers/net/nfp/nfp_net.c | 8 +- > drivers/net/null/rte_eth_null.c | 6 +- > drivers/net/octeontx/octeontx_ethdev.c | 4 +- > drivers/net/octeontx2/otx2_ethdev.h | 4 +- > drivers/net/octeontx2/otx2_ethdev_ops.c | 4 +- > drivers/net/pcap/rte_eth_pcap.c | 4 +- > drivers/net/qede/qede_ethdev.c | 10 +- > drivers/net/ring/rte_eth_ring.c | 4 +- > drivers/net/sfc/sfc_ethdev.c | 4 +- > drivers/net/softnic/rte_eth_softnic.c | 4 +- > drivers/net/softnic/rte_eth_softnic_link.c | 5 +- > drivers/net/szedata2/rte_eth_szedata2.c | 4 +- > drivers/net/tap/rte_eth_tap.c | 4 +- > drivers/net/thunderx/nicvf_ethdev.c | 4 +- > drivers/net/vhost/rte_eth_vhost.c | 6 +- > drivers/net/virtio/virtio_ethdev.c | 6 +- > drivers/net/vmxnet3/vmxnet3_ethdev.c | 8 +- > examples/bond/main.c | 14 ++- > examples/distributor/main.c | 8 +- > examples/ethtool/ethtool-app/main.c | 8 +- > examples/ethtool/lib/rte_ethtool.c | 21 +++- > examples/eventdev_pipeline/main.c | 8 +- > examples/exception_path/main.c | 7 +- > examples/flow_classify/flow_classify.c | 8 +- > examples/flow_filtering/main.c | 7 +- > examples/ip_fragmentation/main.c | 14 ++- > examples/ip_pipeline/kni.c | 5 +- > examples/ip_pipeline/link.c | 3 +- > examples/ip_reassembly/main.c | 7 +- > examples/ipsec-secgw/ipsec-secgw.c | 6 +- > examples/ipsec-secgw/ipsec.c | 9 +- > examples/ipsec-secgw/sa.c | 10 +- > examples/ipv4_multicast/main.c | 7 +- > examples/kni/main.c | 26 ++++- > examples/l2fwd-crypto/main.c | 9 +- > examples/l2fwd-jobstats/main.c | 8 +- > examples/l2fwd-keepalive/main.c | 8 +- > examples/l2fwd/main.c | 8 +- > examples/l3fwd-acl/main.c | 22 ++++- > examples/l3fwd-power/main.c | 22 ++++- > examples/l3fwd/main.c | 14 ++- > examples/link_status_interrupt/main.c | 8 +- > examples/load_balancer/init.c | 7 +- > examples/multi_process/symmetric_mp/main.c | 8 +- > examples/netmap_compat/lib/compat_netmap.c | 9 +- > examples/packet_ordering/main.c | 8 +- > examples/performance-thread/l3fwd-thread/main.c | 15 ++- > examples/ptpclient/ptpclient.c | 9 +- > examples/qos_meter/main.c | 16 ++- > examples/qos_sched/init.c | 8 +- > examples/rxtx_callbacks/main.c | 9 +- > examples/server_node_efd/server/init.c | 5 +- > examples/skeleton/basicfwd.c | 8 +- > examples/tep_termination/vxlan_setup.c | 6 +- > examples/vhost/main.c | 9 +- > examples/vm_power_manager/main.c | 8 +- > examples/vmdq/main.c | 16 ++- > examples/vmdq_dcb/main.c | 18 +++- > lib/librte_ethdev/rte_ethdev.c | 71 ++++++++++---- > lib/librte_ethdev/rte_ethdev.h | 6 +- > lib/librte_ethdev/rte_ethdev_core.h | 4 +- > lib/librte_latencystats/rte_latencystats.c | 23 ++++- > lib/librte_pdump/rte_pdump.c | 9 +- > 124 files changed, 1221 insertions(+), 291 deletions(-)