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

Aaron Conole aconole at redhat.com
Tue Sep 3 22:06:49 CEST 2019


Andrew Rybchenko <arybchenko at solarflare.com> writes:

> 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.

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


More information about the dev mailing list