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

Andrew Rybchenko <arybche...@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(-)



Reply via email to