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 E2257A2E1B for ; Tue, 3 Sep 2019 22:06:57 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D24FB1EBD2; Tue, 3 Sep 2019 22:06:54 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 725911EBC4 for ; Tue, 3 Sep 2019 22:06:52 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B3DE93058DAA; Tue, 3 Sep 2019 20:06:51 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (unknown [10.18.25.8]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8E56A100197A; Tue, 3 Sep 2019 20:06:50 +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> <16cf85f0ad0.27dc.d74a604c1342fc6d922a87b3e5a1c1e3@solarflare.com> Date: Tue, 03 Sep 2019 16:06:49 -0400 In-Reply-To: <16cf85f0ad0.27dc.d74a604c1342fc6d922a87b3e5a1c1e3@solarflare.com> (Andrew Rybchenko's message of "Tue, 3 Sep 2019 21:24:34 +0300") 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.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Tue, 03 Sep 2019 20:06:51 +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: > On September 3, 2019 21:14:58 Aaron Conole wrote: > >> 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 > > I guess it was applied to dpdk main repo, but should be on top of > dpdk-next-net which has pre-patch applied. Okay. This ends up getting confusing to write automation around. I know UNH uses some scripts to figure out whether a particular patch should apply to certain trees - I'll follow up with them. Meanwhile, I'll try to manually rebase the series so that we have a clean run. >> >> >>> 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(-)