[dpdk-dev] [PATCH v2 00/54] ethdev: change rte_eth_dev_info_get() return value to int

Andrew Rybchenko arybchenko at solarflare.com
Tue Sep 3 20:24:34 CEST 2019


On September 3, 2019 21:14:58 Aaron Conole <aconole at redhat.com> wrote:

> Andrew Rybchenko <arybchenko at solarflare.com> 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.

>
>
>> 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(-)





More information about the dev mailing list