mbox series

[v2,00/54] ethdev: change rte_eth_dev_info_get() return value to int

Message ID 1567519051-28189-1-git-send-email-arybchenko@solarflare.com (mailing list archive)
Headers
Series ethdev: change rte_eth_dev_info_get() return value to int |

Message

Andrew Rybchenko Sept. 3, 2019, 1:56 p.m. UTC
  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/

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

Comments

Aaron Conole Sept. 3, 2019, 6:14 p.m. UTC | #1
Andrew Rybchenko <arybchenko@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

> 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(-)
  
Andrew Rybchenko Sept. 3, 2019, 6:24 p.m. UTC | #2
On September 3, 2019 21:14:58 Aaron Conole <aconole@redhat.com> wrote:

> Andrew Rybchenko <arybchenko@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(-)
  
Aaron Conole Sept. 3, 2019, 8:06 p.m. UTC | #3
Andrew Rybchenko <arybchenko@solarflare.com> writes:

> On September 3, 2019 21:14:58 Aaron Conole <aconole@redhat.com> wrote:
>
>> Andrew Rybchenko <arybchenko@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(-)
  
Thomas Monjalon Sept. 3, 2019, 8:18 p.m. UTC | #4
03/09/2019 22:06, Aaron Conole:
> Andrew Rybchenko <arybchenko@solarflare.com> writes:
> > On September 3, 2019 21:14:58 Aaron Conole <aconole@redhat.com> wrote:
> >> 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.

You can check the script here:
	http://git.dpdk.org/tools/dpdk-ci/tree/tools/guess_git_tree.py
  
Aaron Conole Sept. 4, 2019, 1:07 p.m. UTC | #5
Thomas Monjalon <thomas@monjalon.net> writes:

> 03/09/2019 22:06, Aaron Conole:
>> Andrew Rybchenko <arybchenko@solarflare.com> writes:
>> > On September 3, 2019 21:14:58 Aaron Conole <aconole@redhat.com> wrote:
>> >> 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.
>
> You can check the script here:
> 	http://git.dpdk.org/tools/dpdk-ci/tree/tools/guess_git_tree.py

Thanks.  I'll check it out.