DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Mattias Rönnblom" <hofors@lysator.liu.se>
To: Stephen Hemminger <stephen@networkplumber.org>, dev@dpdk.org
Subject: Re: [PATCH v2 00/71] replace use of fixed size rte_mempcy
Date: Sat, 2 Mar 2024 13:01:51 +0100	[thread overview]
Message-ID: <bca732d8-28e1-48c5-abc2-f0aa9f3748ad@lysator.liu.se> (raw)
In-Reply-To: <91b581bb-e181-4eac-879c-afd20b7bd6c4@lysator.liu.se>

On 2024-03-02 12:14, Mattias Rönnblom wrote:
> On 2024-03-01 18:14, Stephen Hemminger wrote:
>> The DPDK has a lot of "cargo cult" usage of rte_memcpy.
>> This patch set replaces cases where rte_memcpy is used with a fixed
>> size constant size.
>>
>> Typical example is:
>>     rte_memcpy(mac_addrs, mac.addr_bytes, RTE_ETHER_ADDR_LEN);
>> which can be replaced with:
>>     memcpy(mac_addrs, mac.addr_bytes, RTE_ETHER_ADDR_LEN);
>>
>> This has two benefits. Gcc (and clang) are smart enough that for
>> all small fixed size values, they just generate the necessary 
>> instructions
>> to do it inline. It also means that fortify, Coverity, and ASAN
>> analyzers can check these memcpy's.
>>
> 
> Instead of smearing out the knowledge of when to use rte_memcpy(), and 
> when to use memcpy() across the code base, wouldn't it be better to 
> *always* call rte_memcpy() in the fast path, and leave the policy 
> decision to the rte_memcpy() implementation?
> 
> In rte_memcpy(), add:
> if (__builtin_constant_p(n) && n < RTE_LIBC_MEMCPY_SIZE_THRESHOLD)
>      memcpy(/../);
> ..or something to that effect.
> 
> Could you have a #ifdef for dumb static analysis tools? To make it look 
> like you are always using memcpy()?
> 
>> So faster, better, safer.
>>
> 
> What is "faster" based on?
> 

I ran some DSW benchmarks, and if you add

diff --git a/lib/eal/x86/include/rte_memcpy.h 
b/lib/eal/x86/include/rte_memcpy.h
index 72a92290e0..64cd82d78d 100644
--- a/lib/eal/x86/include/rte_memcpy.h
+++ b/lib/eal/x86/include/rte_memcpy.h
@@ -862,6 +862,11 @@ rte_memcpy_aligned(void *dst, const void *src, 
size_t n)
  static __rte_always_inline void *
  rte_memcpy(void *dst, const void *src, size_t n)
  {
+       if (__builtin_constant_p(n) && n <= 32) {
+               memcpy(dst, src, n);
+               return dst;
+       }
+
         if (!(((uintptr_t)dst | (uintptr_t)src) & ALIGNMENT_MASK))
                 return rte_memcpy_aligned(dst, src, n);
         else

...the overhead increases from roughly 48 core clock cycles/event to 59 
cc/event. The same for "n < 128". (I'm not sure what counts as "small" 
here.)

So something rte_memcpy() does for small and constant memory copies does 
make things go *significantly* faster, at least in certain cases.

(Linux, GCC 11.4, Intel Gracemont.)

> My experience with replacing rte_memcpy() with memcpy() (or vice versa) 
> is mixed.
> 
> I've also tried just dropping the DPDK-custom memcpy() implementation 
> altogether, and that caused a performance drop (in a particular app, on 
> a particular compiler and CPU).
> 
>> The first patch is a simple coccinelle script to do the replacement
>> and the rest are the results broken out by module.
>>
>> The coccinelle script can be used again to make sure more bad
>> usage doesn't creep in with new drivers.
>>
>> v2 - fix CI failure on some OS by adding string.h
>>       remove rte_memcpy.h if no longer used
>>
>> Stephen Hemminger (71):
>>    cocci/rte_memcpy: add script to eliminate fixed size rte_memcpy
>>    eal: replace use of fixed size rte_memcpy
>>    ethdev: replace use of fixed size rte_memcpy
>>    eventdev: replace use of fixed size rte_memcpy
>>    cryptodev: replace use of fixed size rte_memcpy
>>    ip_frag: replace use of fixed size rte_memcpy
>>    net: replace use of fixed size rte_memcpy
>>    lpm: replace use of fixed size rte_memcpy
>>    node: replace use of fixed size rte_memcpy
>>    pdcp: replace use of fixed size rte_memcpy
>>    pipeline: replace use of fixed size rte_memcpy
>>    rib: replace use of fixed size rte_memcpy
>>    security: replace use of fixed size rte_memcpy
>>    net/mlx5: replace use of fixed size rte_memcpy
>>    net/nfp: replace use of fixed size rte_memcpy
>>    net/ngbe: replace use of fixed size rte_memcpy
>>    net/null: replace use of fixed size rte_memcpy
>>    net/pcap: replace use of fixed size rte_memcpy
>>    net/sfc: replace use of fixed size rte_memcpy
>>    net/tap: replace use of fixed size rte_memcpy
>>    net/txgbe: replace use of fixed size rte_memcpy
>>    raw/ifpga: replace use of fixed size rte_memcpy
>>    raw/skeleton: replace use of fixed size rte_memcpy
>>    net/hns3: replace use of fixed size rte_memcpy
>>    net/i40e: replace use of fixed size rte_memcpy
>>    net/iavf: replace use of fixed size rte_memcpy
>>    net/ice: replace use of fixed size rte_memcpy
>>    net/idpf: replace use of fixed size rte_memcpy
>>    net/ipn3ke: replace use of fixed size rte_memcpy
>>    net/ixgbe: replace use of fixed size rte_memcpy
>>    net/memif: replace use of fixed size rte_memcpy
>>    net/qede: replace use of fixed size rte_memcpy
>>    baseband/acc: replace use of fixed size rte_memcpy
>>    baseband/la12xx: replace use of fixed size rte_memcpy
>>    common/idpf: replace use of fixed size rte_memcpy
>>    common/qat: replace use of fixed size rte_memcpy
>>    compress/qat: replace use of fixed size rte_memcpy
>>    crypto/ccp: replace use of fixed size rte_memcpy
>>    crypto/cnxk: replace use of fixed size rte_memcpy
>>    crypto/dpaa_sec: replace use of fixed size rte_memcpy
>>    crypto/ipsec_mb: replace use of fixed size rte_memcpy
>>    crypto/qat: replace use of fixed size rte_memcpy
>>    crypto/scheduler: replace use of fixed size rte_memcpy
>>    event/cnxk: replace use of fixed size rte_memcpy
>>    event/dlb2: replace use of fixed size rte_memcpy
>>    event/dpaa2: replace use of fixed size rte_memcpy
>>    event/octeontx: replace use of fixed size rte_memcpy
>>    mempool/dpaa: replace use of fixed size rte_memcpy
>>    mempool/dpaa2: replace use of fixed size rte_memcpy
>>    ml/cnxk: replace use of fixed size rte_memcpy
>>    net/af_xdp: replace use of fixed size rte_memcpy
>>    net/avp: replace use of fixed size rte_memcpy
>>    net/axgbe: replace use of fixed size rte_memcpy
>>    net/bnx2x: replace use of fixed size rte_memcpy
>>    net/bnxt: replace use of fixed size rte_memcpy
>>    net/bonding: replace use of fixed size rte_memcpy
>>    net/cnxk: replace use of fixed size rte_memcpy
>>    net/cpfl: replace use of fixed size rte_memcpy
>>    net/cxgbe: replace use of fixed size rte_memcpy
>>    net/dpaa2: replace use of fixed size rte_memcpy
>>    net/e1000: replace use of fixed size rte_memcpy
>>    net/enic: replace use of fixed size rte_memcpy
>>    net/failsafe: replace use of fixed size rte_memcpy
>>    net/gve/base: replace use of fixed size rte_memcpy
>>    net/hinic: replace use of fixed size rte_memcpy
>>    net/mvpp2: replace use of fixed size rte_memcpy
>>    app/test-pmd: replace use of fixed size rte_memcpy
>>    app/graph: replace use of fixed size rte_memcpy
>>    app/test-eventdev: replace use of fixed size rte_memcpy
>>    app/test: replace use of fixed size rte_memcpy
>>    examples: replace use of fixed size rte_memcpy
>>
>>   app/graph/neigh.c                             |   8 +-
>>   app/test-eventdev/test_pipeline_common.c      |  19 ++-
>>   app/test-pmd/cmdline.c                        |  48 ++++----
>>   app/test-pmd/cmdline_flow.c                   |  24 ++--
>>   app/test-pmd/config.c                         |   8 +-
>>   app/test-pmd/csumonly.c                       |   1 -
>>   app/test-pmd/flowgen.c                        |   1 -
>>   app/test-pmd/iofwd.c                          |   1 -
>>   app/test-pmd/macfwd.c                         |   1 -
>>   app/test-pmd/macswap.c                        |   1 -
>>   app/test-pmd/noisy_vnf.c                      |   1 -
>>   app/test-pmd/rxonly.c                         |   1 -
>>   app/test-pmd/testpmd.c                        |   1 -
>>   app/test/commands.c                           |   1 -
>>   app/test/packet_burst_generator.c             |   4 +-
>>   app/test/test_crc.c                           |   5 +-
>>   app/test/test_cryptodev.c                     |  18 ++-
>>   app/test/test_cryptodev_asym.c                |   1 -
>>   app/test/test_cryptodev_security_pdcp.c       |   1 -
>>   app/test/test_efd.c                           |   1 -
>>   app/test/test_efd_perf.c                      |   1 -
>>   app/test/test_event_crypto_adapter.c          |  12 +-
>>   app/test/test_event_dma_adapter.c             |   4 +-
>>   app/test/test_eventdev.c                      |   1 -
>>   app/test/test_ipsec.c                         |   6 +-
>>   app/test/test_link_bonding_mode4.c            |   8 +-
>>   app/test/test_mbuf.c                          |   1 -
>>   app/test/test_member.c                        |   1 -
>>   app/test/test_member_perf.c                   |   1 -
>>   app/test/test_rawdev.c                        |   1 -
>>   app/test/test_security_inline_proto.c         |  36 +++---
>>   app/test/test_service_cores.c                 |   1 -
>>   app/test/virtual_pmd.c                        |   3 +-
>>   devtools/cocci/rte_memcpy.cocci               |  11 ++
>>   drivers/baseband/acc/rte_acc100_pmd.c         |  17 ++-
>>   drivers/baseband/acc/rte_vrb_pmd.c            |  21 ++--
>>   drivers/baseband/la12xx/bbdev_la12xx.c        |   4 +-
>>   drivers/common/idpf/idpf_common_device.c      |   4 +-
>>   drivers/common/idpf/idpf_common_virtchnl.c    |   8 +-
>>   drivers/common/qat/qat_qp.c                   |  10 +-
>>   drivers/compress/qat/qat_comp.c               |   8 +-
>>   drivers/crypto/ccp/ccp_crypto.c               |  14 +--
>>   drivers/crypto/cnxk/cnxk_cryptodev_ops.c      |   2 +-
>>   drivers/crypto/cnxk/cnxk_se.h                 |   2 +-
>>   drivers/crypto/dpaa_sec/dpaa_sec.c            |   2 +-
>>   drivers/crypto/ipsec_mb/pmd_snow3g.c          |   4 +-
>>   drivers/crypto/qat/qat_sym_session.c          |  52 ++++-----
>>   .../scheduler/rte_cryptodev_scheduler.c       |   6 +-
>>   drivers/crypto/scheduler/scheduler_failover.c |  12 +-
>>   drivers/event/cnxk/cnxk_tim_evdev.c           |   4 +-
>>   drivers/event/dlb2/dlb2.c                     |   6 +-
>>   drivers/event/dpaa2/dpaa2_eventdev.c          |   6 +-
>>   drivers/event/octeontx/timvf_evdev.c          |   4 +-
>>   drivers/mempool/dpaa/dpaa_mempool.c           |   4 +-
>>   drivers/mempool/dpaa2/dpaa2_hw_mempool.c      |   4 +-
>>   drivers/ml/cnxk/cn10k_ml_model.c              |   8 +-
>>   drivers/ml/cnxk/cn10k_ml_ops.c                |  11 +-
>>   drivers/ml/cnxk/cnxk_ml_ops.c                 |   2 +-
>>   drivers/ml/cnxk/mvtvm_ml_model.c              |   8 +-
>>   drivers/ml/cnxk/mvtvm_ml_ops.c                |   8 +-
>>   drivers/net/af_xdp/rte_eth_af_xdp.c           |   2 +-
>>   drivers/net/avp/avp_ethdev.c                  |   4 +-
>>   drivers/net/axgbe/axgbe_ethdev.c              |   4 +-
>>   drivers/net/bnx2x/bnx2x.c                     |  32 +++--
>>   drivers/net/bnx2x/bnx2x_stats.c               |  10 +-
>>   drivers/net/bnx2x/bnx2x_vfpf.c                |  19 +--
>>   drivers/net/bnxt/bnxt_flow.c                  |  34 +++---
>>   drivers/net/bonding/rte_eth_bond_8023ad.c     |   4 +-
>>   drivers/net/bonding/rte_eth_bond_flow.c       |   2 +-
>>   drivers/net/cnxk/cnxk_ethdev_ops.c            |   2 +-
>>   drivers/net/cnxk/cnxk_tm.c                    |   5 +-
>>   drivers/net/cpfl/cpfl_ethdev.c                |   3 +-
>>   drivers/net/cpfl/cpfl_vchnl.c                 |   4 +-
>>   drivers/net/cxgbe/clip_tbl.c                  |   2 +-
>>   drivers/net/cxgbe/cxgbe_filter.c              |   8 +-
>>   drivers/net/cxgbe/l2t.c                       |   4 +-
>>   drivers/net/cxgbe/smt.c                       |  20 ++--
>>   drivers/net/dpaa2/base/dpaa2_hw_dpni.c        |   1 -
>>   drivers/net/dpaa2/dpaa2_ethdev.c              |   1 -
>>   drivers/net/dpaa2/dpaa2_recycle.c             |   1 -
>>   drivers/net/dpaa2/dpaa2_rxtx.c                |   1 -
>>   drivers/net/dpaa2/dpaa2_sparser.c             |   1 -
>>   drivers/net/dpaa2/dpaa2_tm.c                  |   2 +-
>>   drivers/net/e1000/em_rxtx.c                   |   1 -
>>   drivers/net/e1000/igb_flow.c                  |  22 ++--
>>   drivers/net/e1000/igb_pf.c                    |   7 +-
>>   drivers/net/e1000/igb_rxtx.c                  |   1 -
>>   drivers/net/enic/enic_main.c                  |   8 +-
>>   drivers/net/failsafe/failsafe_ops.c           |   6 +-
>>   drivers/net/gve/base/gve_adminq.c             |   2 +-
>>   drivers/net/hinic/hinic_pmd_flow.c            |  40 +++----
>>   drivers/net/hns3/hns3_fdir.c                  |   2 +-
>>   drivers/net/hns3/hns3_flow.c                  |   4 +-
>>   drivers/net/i40e/i40e_ethdev.c                | 109 ++++++++----------
>>   drivers/net/i40e/i40e_fdir.c                  |  28 +++--
>>   drivers/net/i40e/i40e_flow.c                  |  56 +++++----
>>   drivers/net/i40e/i40e_pf.c                    |   3 +-
>>   drivers/net/i40e/i40e_tm.c                    |  11 +-
>>   drivers/net/i40e/rte_pmd_i40e.c               |  34 +++---
>>   drivers/net/iavf/iavf_fdir.c                  |  93 +++++++--------
>>   drivers/net/iavf/iavf_fsub.c                  |  50 ++++----
>>   drivers/net/iavf/iavf_generic_flow.c          |   2 +-
>>   drivers/net/iavf/iavf_tm.c                    |  11 +-
>>   drivers/net/iavf/iavf_vchnl.c                 |   9 +-
>>   drivers/net/ice/ice_dcf.c                     |   5 +-
>>   drivers/net/ice/ice_dcf_parent.c              |   2 +-
>>   drivers/net/ice/ice_dcf_sched.c               |  11 +-
>>   drivers/net/ice/ice_diagnose.c                |   4 +-
>>   drivers/net/ice/ice_ethdev.c                  |  14 +--
>>   drivers/net/ice/ice_fdir_filter.c             |  37 +++---
>>   drivers/net/ice/ice_generic_flow.c            |   2 +-
>>   drivers/net/ice/ice_hash.c                    |   2 +-
>>   drivers/net/ice/ice_tm.c                      |  11 +-
>>   drivers/net/idpf/idpf_ethdev.c                |   7 +-
>>   drivers/net/idpf/idpf_rxtx.c                  |  10 +-
>>   drivers/net/ipn3ke/ipn3ke_flow.c              |  32 +++--
>>   drivers/net/ipn3ke/ipn3ke_representor.c       |  16 +--
>>   drivers/net/ipn3ke/ipn3ke_tm.c                |   6 +-
>>   drivers/net/ixgbe/ixgbe_ethdev.c              |   9 +-
>>   drivers/net/ixgbe/ixgbe_fdir.c                |   7 +-
>>   drivers/net/ixgbe/ixgbe_flow.c                |  65 +++++------
>>   drivers/net/ixgbe/ixgbe_ipsec.c               |   8 +-
>>   drivers/net/ixgbe/ixgbe_pf.c                  |   5 +-
>>   drivers/net/ixgbe/ixgbe_tm.c                  |  11 +-
>>   drivers/net/ixgbe/rte_pmd_ixgbe.c             |   4 +-
>>   drivers/net/memif/memif_socket.c              |   4 +-
>>   drivers/net/mlx5/mlx5_devx.c                  |   4 +-
>>   drivers/net/mlx5/mlx5_flow.c                  |  38 +++---
>>   drivers/net/mlx5/mlx5_flow_aso.c              |   6 +-
>>   drivers/net/mlx5/mlx5_flow_hw.c               |  16 +--
>>   drivers/net/mlx5/mlx5_rx.c                    |   6 +-
>>   drivers/net/mlx5/mlx5_rxtx_vec.c              |   8 +-
>>   drivers/net/mvpp2/mrvl_tm.c                   |   2 +-
>>   drivers/net/nfp/flower/nfp_conntrack.c        |   2 +-
>>   drivers/net/nfp/flower/nfp_flower_flow.c      |  16 +--
>>   .../net/nfp/flower/nfp_flower_representor.c   |   2 +-
>>   drivers/net/nfp/nfp_mtr.c                     |  10 +-
>>   drivers/net/ngbe/ngbe_pf.c                    |   4 +-
>>   drivers/net/null/rte_eth_null.c               |   6 +-
>>   drivers/net/pcap/pcap_ethdev.c                |   2 +-
>>   drivers/net/pcap/pcap_osdep_freebsd.c         |   2 +-
>>   drivers/net/pcap/pcap_osdep_linux.c           |   2 +-
>>   drivers/net/qede/qede_main.c                  |   2 +-
>>   drivers/net/sfc/sfc.c                         |   2 +-
>>   drivers/net/sfc/sfc_ef10_tx.c                 |   2 +-
>>   drivers/net/sfc/sfc_ethdev.c                  |  11 +-
>>   drivers/net/sfc/sfc_flow.c                    |  20 ++--
>>   drivers/net/sfc/sfc_flow_rss.c                |   2 +-
>>   drivers/net/sfc/sfc_mae.c                     |   2 +-
>>   drivers/net/sfc/sfc_rx.c                      |   2 +-
>>   drivers/net/sfc/sfc_tso.c                     |   2 +-
>>   drivers/net/sfc/sfc_tso.h                     |   9 +-
>>   drivers/net/tap/rte_eth_tap.c                 |  14 +--
>>   drivers/net/txgbe/txgbe_ethdev.c              |   9 +-
>>   drivers/net/txgbe/txgbe_fdir.c                |   6 +-
>>   drivers/net/txgbe/txgbe_flow.c                |  65 +++++------
>>   drivers/net/txgbe/txgbe_ipsec.c               |   8 +-
>>   drivers/net/txgbe/txgbe_pf.c                  |   4 +-
>>   drivers/net/txgbe/txgbe_tm.c                  |  11 +-
>>   drivers/raw/ifpga/afu_pmd_he_hssi.c           |   3 +-
>>   drivers/raw/ifpga/afu_pmd_he_lpbk.c           |   3 +-
>>   drivers/raw/ifpga/afu_pmd_he_mem.c            |   3 +-
>>   drivers/raw/ifpga/afu_pmd_n3000.c             |   8 +-
>>   drivers/raw/ifpga/ifpga_rawdev.c              |  11 +-
>>   drivers/raw/skeleton/skeleton_rawdev.c        |   7 +-
>>   examples/bbdev_app/main.c                     |   2 +-
>>   examples/l2fwd-cat/cat.c                      |   4 +-
>>   examples/ptpclient/ptpclient.c                |  11 +-
>>   examples/vhost/main.c                         |   5 +-
>>   examples/vmdq/main.c                          |   6 +-
>>   examples/vmdq_dcb/main.c                      |  15 +--
>>   lib/cryptodev/rte_cryptodev.c                 |   2 +-
>>   lib/eal/common/eal_common_options.c           |   7 +-
>>   lib/ethdev/rte_ethdev.c                       |   3 +-
>>   lib/ethdev/rte_flow.c                         |   5 +-
>>   lib/eventdev/rte_event_crypto_adapter.c       |   2 +-
>>   lib/eventdev/rte_event_dma_adapter.c          |   4 +-
>>   lib/eventdev/rte_event_timer_adapter.c        |   2 +-
>>   lib/fib/trie.c                                |   2 +-
>>   lib/ip_frag/rte_ipv6_fragmentation.c          |   4 +-
>>   lib/ip_frag/rte_ipv6_reassembly.c             |   6 +-
>>   lib/lpm/rte_lpm6.c                            |   3 +-
>>   lib/net/rte_ether.c                           |   2 +-
>>   lib/node/ip6_lookup.c                         |   8 +-
>>   lib/pdcp/pdcp_process.c                       |  36 +++---
>>   lib/pipeline/rte_table_action.c               |   8 +-
>>   lib/rib/rte_rib6.h                            |   5 +-
>>   lib/security/rte_security.c                   |   4 +-
>>   188 files changed, 881 insertions(+), 998 deletions(-)
>>   create mode 100644 devtools/cocci/rte_memcpy.cocci
>>

  reply	other threads:[~2024-03-02 12:01 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-29 22:57 [PATCH 00/71] replace use of fixed size rte_memcpy Stephen Hemminger
2024-02-29 22:57 ` [PATCH 01/71] cocci/rte_memcpy: add script to eliminate " Stephen Hemminger
2024-03-01  8:07   ` Morten Brørup
2024-02-29 22:57 ` [PATCH 02/71] eal: replace use of " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 03/71] ethdev: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 04/71] eventdev: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 05/71] cryptodev: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 06/71] ip_frag: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 07/71] net: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 08/71] lpm: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 09/71] node: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 10/71] pdcp: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 11/71] pipeline: " Stephen Hemminger
2024-02-29 22:57 ` [PATCH 12/71] rib: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 13/71] security: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 14/71] net/mlx5: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 15/71] net/nfp: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 16/71] net/ngbe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 17/71] net/null: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 18/71] net/pcap: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 19/71] net/sfc: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 20/71] net/tap: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 21/71] net/txgbe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 22/71] raw/ifpga: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 23/71] raw/skeleton: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 24/71] net/hns3: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 25/71] net/i40e: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 26/71] net/iavf: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 27/71] net/ice: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 28/71] net/idpf: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 29/71] net/ipn3ke: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 30/71] net/ixgbe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 31/71] net/memif: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 32/71] net/qede: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 33/71] baseband/acc: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 34/71] baseband/la12xx: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 35/71] common/idpf: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 36/71] common/qat: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 37/71] compress/qat: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 38/71] crypto/ccp: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 39/71] crypto/cnxk: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 40/71] crypto/dpaa_sec: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 41/71] crypto/ipsec_mb: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 42/71] crypto/qat: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 43/71] crypto/scheduler: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 44/71] event/cnxk: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 45/71] event/dlb2: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 46/71] event/dpaa2: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 47/71] event/octeontx: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 48/71] mempool/dpaa: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 49/71] mempool/dpaa2: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 50/71] ml/cnxk: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 51/71] net/af_xdp: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 52/71] net/avp: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 53/71] net/axgbe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 54/71] net/bnx2x: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 55/71] net/bnxt: " Stephen Hemminger
2024-03-01  2:54   ` Somnath Kotur
2024-02-29 22:58 ` [PATCH 56/71] net/bonding: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 57/71] net/cnxk: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 58/71] net/cpfl: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 59/71] net/cxgbe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 60/71] net/dpaa2: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 61/71] net/e1000: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 62/71] net/enic: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 63/71] net/failsafe: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 64/71] net/gve/base: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 65/71] net/hinic: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 66/71] net/mvpp2: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 67/71] app/test-pmd: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 68/71] app/graph: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 69/71] app/test-eventdev: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 70/71] app/test: " Stephen Hemminger
2024-02-29 22:58 ` [PATCH 71/71] examples: " Stephen Hemminger
2024-03-01  8:38 ` [PATCH 00/71] " Bruce Richardson
2024-03-01 11:06 ` Hemant Agrawal
2024-03-01 12:55 ` Konstantin Ananyev
2024-03-01 18:55   ` Ajit Khaparde
2024-03-01 13:53 ` David Marchand
2024-03-01 17:14 ` [PATCH v2 00/71] replace use of fixed size rte_mempcy Stephen Hemminger
2024-03-01 17:14   ` [PATCH v2 01/71] cocci/rte_memcpy: add script to eliminate fixed size rte_memcpy Stephen Hemminger
2024-03-02 11:19     ` Mattias Rönnblom
2024-03-02 17:02       ` Stephen Hemminger
2024-03-02 17:39         ` Morten Brørup
2024-03-01 17:14   ` [PATCH v2 02/71] eal: replace use of " Stephen Hemminger
2024-03-01 17:14   ` [PATCH v2 03/71] ethdev: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 04/71] eventdev: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 05/71] cryptodev: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 06/71] ip_frag: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 07/71] net: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 08/71] lpm: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 09/71] node: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 10/71] pdcp: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 11/71] pipeline: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 12/71] rib: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 13/71] security: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 14/71] net/mlx5: " Stephen Hemminger
2024-03-08 18:16     ` Dariusz Sosnowski
2024-03-01 17:15   ` [PATCH v2 15/71] net/nfp: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 16/71] net/ngbe: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 17/71] net/null: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 18/71] net/pcap: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 19/71] net/sfc: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 20/71] net/tap: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 21/71] net/txgbe: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 22/71] raw/ifpga: " Stephen Hemminger
2024-03-05  9:13     ` Xu, Rosen
2024-03-01 17:15   ` [PATCH v2 23/71] raw/skeleton: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 24/71] net/hns3: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 25/71] net/i40e: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 26/71] net/iavf: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 27/71] net/ice: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 28/71] net/idpf: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 29/71] net/ipn3ke: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 30/71] net/ixgbe: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 31/71] net/memif: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 32/71] net/qede: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 33/71] baseband/acc: " Stephen Hemminger
2024-03-02  1:01     ` Chautru, Nicolas
2024-03-02  3:23       ` Stephen Hemminger
2024-03-04 18:39         ` Chautru, Nicolas
2024-03-01 17:15   ` [PATCH v2 34/71] baseband/la12xx: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 35/71] common/idpf: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 36/71] common/qat: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 37/71] compress/qat: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 38/71] crypto/ccp: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 39/71] crypto/cnxk: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 40/71] crypto/dpaa_sec: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 41/71] crypto/ipsec_mb: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 42/71] crypto/qat: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 43/71] crypto/scheduler: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 44/71] event/cnxk: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 45/71] event/dlb2: " Stephen Hemminger
2024-03-05 17:07     ` Sevincer, Abdullah
2024-03-05 18:30       ` Stephen Hemminger
2024-03-06 15:24     ` Sevincer, Abdullah
2024-03-01 17:15   ` [PATCH v2 46/71] event/dpaa2: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 47/71] event/octeontx: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 48/71] mempool/dpaa: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 49/71] mempool/dpaa2: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 50/71] ml/cnxk: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 51/71] net/af_xdp: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 52/71] net/avp: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 53/71] net/axgbe: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 54/71] net/bnx2x: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 55/71] net/bnxt: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 56/71] net/bonding: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 57/71] net/cnxk: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 58/71] net/cpfl: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 59/71] net/cxgbe: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 60/71] net/dpaa2: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 61/71] net/e1000: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 62/71] net/enic: " Stephen Hemminger
2024-03-01 17:15   ` [PATCH v2 63/71] net/failsafe: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 64/71] net/gve/base: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 65/71] net/hinic: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 66/71] net/mvpp2: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 67/71] app/test-pmd: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 68/71] app/graph: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 69/71] app/test-eventdev: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 70/71] app/test: " Stephen Hemminger
2024-03-01 17:16   ` [PATCH v2 71/71] examples: " Stephen Hemminger
2024-03-01 17:50   ` [PATCH v2 00/71] replace use of fixed size rte_mempcy Tyler Retzlaff
2024-03-02 11:14   ` Mattias Rönnblom
2024-03-02 12:01     ` Mattias Rönnblom [this message]
2024-03-02 13:05       ` Morten Brørup
2024-03-02 16:37         ` Stephen Hemminger
2024-03-02 17:32           ` Morten Brørup
2024-03-02 16:35       ` Stephen Hemminger
2024-04-02 21:50 ` [PATCH v3 00/30] replace rte_memcpy of fixed size with memcpy Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 01/30] cocci/rte_memcpy: add script to eliminate fixed size rte_memcpy Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 02/30] eal: replace use of " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 03/30] ethdev: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 04/30] eventdev: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 05/30] cryptodev: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 06/30] ip_frag: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 07/30] net: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 08/30] lpm: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 09/30] node: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 10/30] pdcp: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 11/30] pipeline: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 12/30] rib: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 13/30] security: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 14/30] bus: remove unneeded rte_memcpy.h include Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 15/30] net: replace use of fixed size rte_memcpy Stephen Hemminger
2024-04-04 11:07     ` Slava Ovsiienko
2024-04-02 21:50   ` [PATCH v3 16/30] raw: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 17/30] baseband: " Stephen Hemminger
2024-04-05  1:22     ` Chautru, Nicolas
2024-04-05 15:02       ` Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 18/30] common: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 19/30] crypto: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 20/30] " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 21/30] event: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 22/30] mempool: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 23/30] ml/cnxk: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 24/30] app/test-pmd: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 25/30] app/graph: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 26/30] app/test-eventdev: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 27/30] app/test: " Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 28/30] app/test-pipeline: remove unused rte_memcpy.h include Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 29/30] app/test-bbdev: remove unnecessary include of rte_memcpy.h Stephen Hemminger
2024-04-02 21:50   ` [PATCH v3 30/30] examples: replace use of fixed size rte_memcpy Stephen Hemminger
2024-04-04  7:50   ` [PATCH v3 00/30] replace rte_memcpy of fixed size with memcpy Konstantin Ananyev
2024-04-04 15:52   ` Tyler Retzlaff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bca732d8-28e1-48c5-abc2-f0aa9f3748ad@lysator.liu.se \
    --to=hofors@lysator.liu.se \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).