[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