1. 27 Jul, 2018 17 commits
  2. 26 Jul, 2018 23 commits
    • Tariq Toukan's avatar
      net/mlx5e: TX, Use function to access sq_dma object in fifo · 8ee48233
      Tariq Toukan authored
      Use designated function mlx5e_dma_get() to get
      the mlx5e_sq_dma object to be pushed into fifo.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Reviewed-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      8ee48233
    • Tariq Toukan's avatar
      net/mlx5e: TX, Move DB fields in TXQ-SQ struct · 9a3956da
      Tariq Toukan authored
      Pointers in DB are static, move them to read-only area so they
      do not share a cacheline with fields modified in datapath.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      9a3956da
    • Tariq Toukan's avatar
      net/mlx5e: RX, Prefetch the xdp_frame data area · d3398a4f
      Tariq Toukan authored
      A loaded XDP program might write to the xdp_frame data area,
      prefetchw() it to avoid a potential cache miss.
      
      Performance tests:
      ConnectX-5, XDP_TX packet rate, single ring.
      CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
      
      Before: 13,172,976 pps
      After:  13,456,248 pps
      2% gain.
      
      Fixes: 22f45398 ("net/mlx5e: Support XDP over Striding RQ")
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      d3398a4f
    • Tariq Toukan's avatar
      net/mlx5e: Add support for XDP_REDIRECT in device-out side · 58b99ee3
      Tariq Toukan authored
      Add implementation for the ndo_xdp_xmit callback.
      
      Dedicate a new set of XDP-SQ instances to satisfy the XDP_REDIRECT
      requests.  These instances are totally separated from the existing
      XDP-SQ objects that satisfy local XDP_TX actions.
      
      Performance tests:
      
      xdp_redirect_map from ConnectX-5 to ConnectX-5.
      CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
      Packet-rate of 64B packets.
      
      Single queue: 7 Mpps.
      Multi queue: 55 Mpps.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      58b99ee3
    • Tariq Toukan's avatar
      net/mlx5e: Re-order fields of struct mlx5e_xdpsq · dac0d15f
      Tariq Toukan authored
      In the downstream patch that adds support to XDP_REDIRECT-out,
      the XDP xmit frame function doesn't share the same run context as
      the NAPI that polls the XDP-SQ completion queue.
      
      Hence, need to re-order the XDP-SQ fields to avoid cacheline
      false-sharing.
      
      Take redirect_flush and doorbell out of DB, into separated
      cachelines.
      
      Add a cacheline breaker within the stats struct.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      dac0d15f
    • Tariq Toukan's avatar
      net/mlx5e: Refactor XDP counters · 890388ad
      Tariq Toukan authored
      Separate the XDP counters into two sets:
      (1) One set reside in the RQ stats, and they monitor XDP stats
      in the RQ side.
      (2) Another set is per XDP-SQ, and they monitor XDP stats that
      are related to XDP transmit flow.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      890388ad
    • Tariq Toukan's avatar
      net/mlx5e: Make XDP xmit functions more generic · c94e4f11
      Tariq Toukan authored
      Convert the XDP xmit functions to use the generic xdp_frame API
      in XDP_TX flow.
      Same functions will be used later in this series to transmit
      the XDP redirect-out packets as well.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      c94e4f11
    • Tariq Toukan's avatar
      net/mlx5e: Add counter for XDP redirect in RX · 86690b4b
      Tariq Toukan authored
      Add per-ring and total stats for received packets that
      goes into XDP redirection.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      86690b4b
    • Tariq Toukan's avatar
      net/mlx5e: Move XDP related code into new XDP files · 159d2131
      Tariq Toukan authored
      Take XDP code out of the general EN header and RX file into
      new XDP files.
      
      Currently, XDP-SQ resides only within an RQ and used from a
      single flow (XDP_TX) triggered upon RX completions.
      In a downstream patch, additional type of XDP-SQ instances will be
      presented and used for the XDP_REDIRECT flow, totally unrelated to
      the RX context.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      159d2131
    • Tariq Toukan's avatar
      net/mlx5e: Restrict the combination of large MTU and XDP · a26a5bdf
      Tariq Toukan authored
      Add checks in control path upon an MTU change or an XDP program set,
      to prevent reaching cases where large MTU and XDP are set simultaneously.
      
      This is to make sure we allow XDP only with the linear RX memory scheme,
      i.e. a received packet is not scattered to different pages.
      Change mlx5e_rx_get_linear_frag_sz() accordingly, so that we make sure
      the XDP configuration can really be set, instead of assuming that it is.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      a26a5bdf
    • Tariq Toukan's avatar
      net/mlx5e: Gather all XDP pre-requisite checks in a single function · 0ec13877
      Tariq Toukan authored
      Dedicate a function to all checks done when setting an XDP program.
      Take indications from priv instead of netdev features.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      0ec13877
    • Tariq Toukan's avatar
      net/mlx5e: Do not recycle RX pages in interface down flow · cb5189d1
      Tariq Toukan authored
      Keep all page-pool recycle calls within NAPI context.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      cb5189d1
    • Tariq Toukan's avatar
      net/mlx5e: Replace call to MPWQE free with dealloc in interface down flow · afab995e
      Tariq Toukan authored
      No need to expose the MPWQE free function to control path.
      The dealloc function already exposed, use it.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Reviewed-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      afab995e
    • David S. Miller's avatar
      Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · 6a8fab17
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      10GbE Intel Wired LAN Driver Updates 2018-07-26
      
      This series contains updates to ixgbe and igb.
      
      Tony fixes ixgbe to add checks to ensure jumbo frames or LRO get enabled
      after an XDP program is loaded.
      
      Shannon Nelson adds the missing security configuration registers to the
      ixgbe register dump, which will help in debugging.
      
      Christian Grönke fixes an issue in igb that occurs on SGMII based SPF
      mdoules, by reverting changes from 2 previous patches.  The issue was
      that initialization would fail on the fore mentioned modules because the
      driver would try to reset the PHY before obtaining the PHY address of
      the SGMII attached PHY.
      
      Venkatesh Srinivas replaces wmb() with dma_wmb() for doorbell writes,
      which avoids SFENCEs before the doorbell writes.
      
      Alex cleans up and refactors ixgbe Tx/Rx shutdown to reduce time needed
      to stop the device.  The code refactor allows us to take the completion
      time into account when disabling queues, so that on some platforms with
      higher completion times, would not result in receive queues disabled
      messages.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6a8fab17
    • Jiri Pirko's avatar
      net: sched: unmark chain as explicitly created on delete · c921d7db
      Jiri Pirko authored
      Once user manually deletes the chain using "chain del", the chain cannot
      be marked as explicitly created anymore.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Fixes: 32a4f5ec ("net: sched: introduce chain object to uapi")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c921d7db
    • Doron Roberts-Kedes's avatar
      tls: Skip zerocopy path for ITER_KVEC · 0a26cf3f
      Doron Roberts-Kedes authored
      The zerocopy path ultimately calls iov_iter_get_pages, which defines the
      step function for ITER_KVECs as simply, return -EFAULT. Taking the
      non-zerocopy path for ITER_KVECs avoids the unnecessary fallback.
      
      See https://lore.kernel.org/lkml/20150401023311.GL29656@ZenIV.linux.org.uk/T/#u
      for a discussion of why zerocopy for vmalloc data is not a good idea.
      
      Discovered while testing NBD traffic encrypted with ktls.
      
      Fixes: c46234eb ("tls: RX path for ktls")
      Signed-off-by: default avatarDoron Roberts-Kedes <doronrk@fb.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a26cf3f
    • Gustavo A. R. Silva's avatar
      net: sched: cls_api: fix dead code in switch · 2ed9db30
      Gustavo A. R. Silva authored
      Code at line 1850 is unreachable. Fix this by removing the break
      statement above it, so the code for case RTM_GETCHAIN can be
      properly executed.
      
      Addresses-Coverity-ID: 1472050 ("Structurally dead code")
      Fixes: 32a4f5ec ("net: sched: introduce chain object to uapi")
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ed9db30
    • Guillaume Nault's avatar
      l2tp: remove ->recv_payload_hook · 2b139e6b
      Guillaume Nault authored
      The tunnel reception hook is only used by l2tp_ppp for skipping PPP
      framing bytes. This is a session specific operation, but once a PPP
      session sets ->recv_payload_hook on its tunnel, all frames received by
      the tunnel will enter pppol2tp_recv_payload_hook(), including those
      targeted at Ethernet sessions (an L2TPv3 tunnel can multiplex PPP and
      Ethernet sessions).
      
      So this mechanism is wrong, and uselessly complex. Let's just move this
      functionality to the pppol2tp rx handler and drop ->recv_payload_hook.
      Signed-off-by: default avatarGuillaume Nault <g.nault@alphalink.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b139e6b
    • YueHaibing's avatar
      tipc: add missing dev_put() on error in tipc_enable_l2_media · 63135ee0
      YueHaibing authored
      when tipc_own_id failed to obtain node identity,dev_put should
      be call before return -EINVAL.
      
      Fixes: 682cd3cf ("tipc: confgiure and apply UDP bearer MTU on running links")
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63135ee0
    • Vakul Garg's avatar
      net/tls: Removed redundant checks for non-NULL · 201876b3
      Vakul Garg authored
      Removed checks against non-NULL before calling kfree_skb() and
      crypto_free_aead(). These functions are safe to be called with NULL
      as an argument.
      Signed-off-by: default avatarVakul Garg <vakul.garg@nxp.com>
      Acked-by: default avatarDave Watson <davejwatson@fb.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      201876b3
    • Vinicius Costa Gomes's avatar
      cbs: Add support for the graft function · 990e35ec
      Vinicius Costa Gomes authored
      This will allow to install a child qdisc under cbs. The main use case
      is to install ETF (Earliest TxTime First) qdisc under cbs, so there's
      another level of control for time-sensitive traffic.
      Signed-off-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      990e35ec
    • YueHaibing's avatar
      net: hns: Make many functions static · 336a443b
      YueHaibing authored
      Fixes the following sparse warning:
      
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:73:20: warning: symbol 'hns_ae_get_handle' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:332:6: warning: symbol 'hns_ae_stop' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:360:6: warning: symbol 'hns_ae_toggle_ring_irq' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:580:6: warning: symbol 'hns_ae_update_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:663:6: warning: symbol 'hns_ae_get_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:695:6: warning: symbol 'hns_ae_get_strings' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:728:5: warning: symbol 'hns_ae_get_sset_count' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:774:6: warning: symbol 'hns_ae_update_led_status' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:786:5: warning: symbol 'hns_ae_cpld_set_led_id' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:798:6: warning: symbol 'hns_ae_get_regs' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c:823:5: warning: symbol 'hns_ae_get_regs_len' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c:342:6: warning: symbol 'hns_gmac_update_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c:934:12: warning: symbol 'hns_mac_get_vaddr' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c:953:5: warning: symbol 'hns_mac_get_cfg' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:343:6: warning: symbol 'hns_dsaf_srst_chns' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:366:1: warning: symbol 'hns_dsaf_srst_chns_acpi' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:373:6: warning: symbol 'hns_dsaf_roce_srst' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:387:6: warning: symbol 'hns_dsaf_roce_srst_acpi' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:571:5: warning: symbol 'hns_mac_get_sfp_prsnt' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:589:5: warning: symbol 'hns_mac_get_sfp_prsnt_acpi' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:31:12: warning: symbol 'g_dsaf_mode_match' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:45:5: warning: symbol 'hns_dsaf_get_cfg' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:962:6: warning: symbol 'hns_dsaf_tcam_addr_get' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2087:6: warning: symbol 'hns_dsaf_port_work_rate_cfg' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2837:5: warning: symbol 'hns_dsaf_roce_reset' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:76:5: warning: symbol 'hns_ppe_common_get_cfg' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:107:6: warning: symbol 'hns_ppe_common_free_cfg' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:340:6: warning: symbol 'hns_ppe_uninit_ex' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c:708:5: warning: symbol 'hns_rcb_get_ring_num' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c:744:14: warning: symbol 'hns_rcb_common_get_vaddr' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c:314:6: warning: symbol 'hns_xgmac_update_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_enet.c:1303:6: warning: symbol 'hns_nic_update_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_enet.c:1585:6: warning: symbol 'hns_nic_poll_controller' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_enet.c:1938:6: warning: symbol 'hns_set_multicast_list' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_enet.c:1960:6: warning: symbol 'hns_nic_set_rx_mode' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:661:6: warning: symbol 'hns_get_ringparam' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:811:6: warning: symbol 'hns_get_channels' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:828:6: warning: symbol 'hns_get_ethtool_stats' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:886:6: warning: symbol 'hns_get_strings' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:976:5: warning: symbol 'hns_get_sset_count' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:1010:5: warning: symbol 'hns_phy_led_set' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:1032:5: warning: symbol 'hns_set_phys_id' was not declared. Should it be static?
      drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:1106:6: warning: symbol 'hns_get_regs' was not declared. Should it be static?
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      336a443b
    • Anders Roxell's avatar
      selftests/net: add tls to .gitignore · eb91f42e
      Anders Roxell authored
      Add the tls binary to .gitignore
      
      Fixes: 7f657d5b ("selftests: tls: add selftests for TLS sockets")
      Signed-off-by: default avatarAnders Roxell <anders.roxell@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eb91f42e