linux/drivers/net/ethernet/netronome/nfp
Jiong Wang 8c90053858 nfp: bpf: implement memory bulk copy for length bigger than 32-bytes
When the gathered copy length is bigger than 32-bytes and within 128-bytes
(the maximum length a single CPP Pull/Push request can finish), the
strategy of read/write are changeed into:

  * Read.
      - use direct reference mode when length is within 32-bytes.
      - use indirect mode when length is bigger than 32-bytes.

  * Write.
      - length <= 8-bytes
        use write8 (direct_ref).
      - length <= 32-byte and 4-bytes aligned
        use write32 (direct_ref).
      - length <= 32-bytes but not 4-bytes aligned
        use write8 (indirect_ref).
      - length > 32-bytes and 4-bytes aligned
        use write32 (indirect_ref).
      - length > 32-bytes and not 4-bytes aligned and <= 40-bytes
        use write32 (direct_ref) to finish the first 32-bytes.
        use write8 (direct_ref) to finish all remaining hanging part.
      - length > 32-bytes and not 4-bytes aligned
        use write32 (indirect_ref) to finish those 4-byte aligned parts.
        use write8 (direct_ref) to finish all remaining hanging part.

Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2017-12-01 20:59:20 +01:00
..
bpf nfp: bpf: implement memory bulk copy for length bigger than 32-bytes 2017-12-01 20:59:20 +01:00
flower nfp: flower: add missing kdoc 2017-11-21 20:24:37 +09:00
nfpcore nfp: fix old kdoc issues 2017-12-01 20:59:19 +01:00
nic nfp: separate app vNIC init/clean from alloc/free 2017-09-03 21:22:04 -07:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
nfp_app_nic.c nfp: separate app vNIC init/clean from alloc/free 2017-09-03 21:22:04 -07:00
nfp_app.c nfp: refactor nfp_app_reprs_set 2017-11-05 23:23:26 +09:00
nfp_app.h nfp: register flower reprs for egress dev offload 2017-11-17 14:09:36 +09:00
nfp_asm.c nfp: bpf: implement memory bulk copy for length within 32-bytes 2017-12-01 20:59:20 +01:00
nfp_asm.h nfp: bpf: implement memory bulk copy for length within 32-bytes 2017-12-01 20:59:20 +01:00
nfp_devlink.c nfp: devlink add support for getting eswitch mode 2017-06-25 11:42:01 -04:00
nfp_hwmon.c nfp: add hwmon support 2017-05-30 11:27:06 -04:00
nfp_main.c nfp: make use of MAC reinit 2017-11-05 23:23:26 +09:00
nfp_main.h nfp: add basic SR-IOV ndo functions 2017-08-25 19:24:58 -07:00
nfp_net_common.c Merge branch 'akpm' (patches from Andrew) 2017-11-15 19:42:40 -08:00
nfp_net_ctrl.h nfp: bpf: move to datapath ABI version 2 2017-10-09 09:51:03 -07:00
nfp_net_debugfs.c nfp: don't reuse pointers in ring dumping 2017-08-18 22:39:28 -07:00
nfp_net_ethtool.c nfp: fix vlan receive MAC statistics typo 2017-11-17 14:09:35 +09:00
nfp_net_main.c nfp: resync repr state when port table sync 2017-11-05 23:23:26 +09:00
nfp_net_repr.c nfp: register flower reprs for egress dev offload 2017-11-17 14:09:36 +09:00
nfp_net_repr.h nfp: resync repr state when port table sync 2017-11-05 23:23:26 +09:00
nfp_net_sriov.c nfp: inform the VF driver needs to be restarted after changing the MAC 2017-10-28 18:59:48 +09:00
nfp_net_sriov.h nfp: add basic SR-IOV ndo functions 2017-08-25 19:24:58 -07:00
nfp_net.h nfp: fix old kdoc issues 2017-12-01 20:59:19 +01:00
nfp_netvf_main.c nfp: advertise support for NFD ABI 0.5 2017-06-07 12:51:42 -04:00
nfp_port.c nfp: store pointer to MAC statistics in nfp_port 2017-08-18 22:39:28 -07:00
nfp_port.h nfp: fix vlan receive MAC statistics typo 2017-11-17 14:09:35 +09:00