1. 30 Jul, 2018 13 commits
    • Quentin Schulz's avatar
      net: phy: mscc: the extended page access register is 16 bits · 86ff7362
      Quentin Schulz authored
      The Extended Page Access is a 16-bit register, so change the page
      parameter of vsc85xx_phy_page_set to a u16.
      Signed-off-by: default avatarQuentin Schulz <quentin.schulz@bootlin.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86ff7362
    • Vakul Garg's avatar
      net/tls: Use socket data_ready callback on record availability · ad13acce
      Vakul Garg authored
      On receipt of a complete tls record, use socket's saved data_ready
      callback instead of state_change callback. In function tls_queue(),
      the TLS record is queued in encrypted state. But the decryption
      happen inline when tls_sw_recvmsg() or tls_sw_splice_read() get invoked.
      So it should be ok to notify the waiting context about the availability
      of data as soon as we could collect a full TLS record. For new data
      availability notification, sk_data_ready callback is more appropriate.
      It points to sock_def_readable() which wakes up specifically for EPOLLIN
      event. This is in contrast to the socket callback sk_state_change which
      points to sock_def_wakeup() which issues a wakeup unconditionally
      (without event mask).
      Signed-off-by: default avatarVakul Garg <vakul.garg@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad13acce
    • David S. Miller's avatar
      Merge branch 'TC-refactor-act_mirred-packets-re-injection' · 8f3f6500
      David S. Miller authored
      Paolo Abeni says:
      
      ====================
      TC: refactor act_mirred packets re-injection
      
      This series is aimed at improving the act_mirred redirect performances.
      Such action is used by OVS to represent TC S/W flows, and it's current largest
      bottle-neck is the need for a skb_clone() for each packet.
      
      The first 2 patches introduce some cleanup and safeguards to allow extending
      tca_result - we will use it to store RCU protected redirect information - and
      introduce a clear separation between user-space accessible tcfa_action
      values and internal values accessible only by the kernel.
      Then a new tcfa_action value is introduced: TC_ACT_REINJECT, similar to
      TC_ACT_REDIRECT, but preserving the mirred semantic. Such value is not
      accessible from user-space.
      The last patch exploits the newly introduced infrastructure in the act_mirred
      action, to avoid a skb_clone, when possible.
      
      Overall this the above gives a ~10% performance improvement in forwarding tput,
      when using the TC S/W datapath.
      
      v1 -> v2:
       - preserve the rcu lock in act_bpf
       - add and use a new action value to reinject the packets, preserving the mirred
         semantic
      
      v2 -> v3:
       - renamed to new action as TC_ACT_REINJECT
       - TC_ACT_REINJECT is not exposed to user-space
      
      v3 -> v4:
       - dropped the TC_ACT_REDIRECT patch
       - report failure via extack, too
       - rename the new action as TC_ACT_REINSERT
       - skip clone only if the control action don't touch tcf_result
      
      v4 -> v5:
       - fix a couple of build issue reported by kbuild bot
       - dont split messages
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8f3f6500
    • Paolo Abeni's avatar
      act_mirred: use TC_ACT_REINSERT when possible · e5cf1baf
      Paolo Abeni authored
      When mirred is invoked from the ingress path, and it wants to redirect
      the processed packet, it can now use the TC_ACT_REINSERT action,
      filling the tcf_result accordingly, and avoiding a per packet
      skb_clone().
      
      Overall this gives a ~10% improvement in forwarding performance for the
      TC S/W data path and TC S/W performances are now comparable to the
      kernel openvswitch datapath.
      
      v1 -> v2: use ACT_MIRRED instead of ACT_REDIRECT
      v2 -> v3: updated after action rename, fixed typo into the commit
      	message
      v3 -> v4: updated again after action rename, added more comments to
      	the code (JiriP), skip the optimization if the control action
      	need to touch the tcf_result (Paolo)
      v4 -> v5: fix sparse warning (kbuild bot)
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5cf1baf
    • Paolo Abeni's avatar
      net/tc: introduce TC_ACT_REINSERT. · cd11b164
      Paolo Abeni authored
      This is similar TC_ACT_REDIRECT, but with a slightly different
      semantic:
      - on ingress the mirred skbs are passed to the target device
      network stack without any additional check not scrubbing.
      - the rcu-protected stats provided via the tcf_result struct
        are updated on error conditions.
      
      This new tcfa_action value is not exposed to the user-space
      and can be used only internally by clsact.
      
      v1 -> v2: do not touch TC_ACT_REDIRECT code path, introduce
       a new action type instead
      v2 -> v3:
       - rename the new action value TC_ACT_REINJECT, update the
         helper accordingly
       - take care of uncloned reinjected packets in XDP generic
         hook
      v3 -> v4:
       - renamed again the new action value (JiriP)
      v4 -> v5:
       - fix build error with !NET_CLS_ACT (kbuild bot)
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd11b164
    • Paolo Abeni's avatar
      tc/act: remove unneeded RCU lock in action callback · 7fd4b288
      Paolo Abeni authored
      Each lockless action currently does its own RCU locking in ->act().
      This allows using plain RCU accessor, even if the context
      is really RCU BH.
      
      This change drops the per action RCU lock, replace the accessors
      with the _bh variant, cleans up a bit the surrounding code and
      documents the RCU status in the relevant header.
      No functional nor performance change is intended.
      
      The goal of this patch is clarifying that the RCU critical section
      used by the tc actions extends up to the classifier's caller.
      
      v1 -> v2:
       - preserve rcu lock in act_bpf: it's needed by eBPF helpers,
         as pointed out by Daniel
      
      v3 -> v4:
       - fixed some typos in the commit message (JiriP)
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7fd4b288
    • Paolo Abeni's avatar
      net/sched: user-space can't set unknown tcfa_action values · 802bfb19
      Paolo Abeni authored
      Currently, when initializing an action, the user-space can specify
      and use arbitrary values for the tcfa_action field. If the value
      is unknown by the kernel, is implicitly threaded as TC_ACT_UNSPEC.
      
      This change explicitly checks for unknown values at action creation
      time, and explicitly convert them to TC_ACT_UNSPEC. No functional
      changes are introduced, but this will allow introducing tcfa_action
      values not exposed to user-space in a later patch.
      
      Note: we can't use the above to hide TC_ACT_REDIRECT from user-space,
      as the latter is already part of uAPI.
      
      v3 -> v4:
       - use an helper to check for action validity (JiriP)
       - emit an extack for invalid actions (JiriP)
      v4 -> v5:
       - keep messages on a single line, drop net_warn (Marcelo)
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      802bfb19
    • YueHaibing's avatar
      liquidio: remove redundant function cn23xx_dump_iq_regs · c87fffc5
      YueHaibing authored
      There are no in-tree callers of cn23xx_dump_iq_regs.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c87fffc5
    • David S. Miller's avatar
      Merge branch 'socket-poll-related-cleanups-v2' · b0a03819
      David S. Miller authored
      Christoph Hellwig says:
      
      ====================
      socket poll related cleanups v2
      
      A couple of cleanups I stumbled upon when studying the networking
      poll code.
      
      Changes since v1:
       - drop a dispute patch from this series (to be sent separately)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0a03819
    • Christoph Hellwig's avatar
      net: remove sock_poll_busy_flag · a331de3b
      Christoph Hellwig authored
      Fold it into the only caller to make the code simpler and easier to read.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a331de3b
    • Christoph Hellwig's avatar
      net: remove sock_poll_busy_loop · f641f13b
      Christoph Hellwig authored
      There is no point in hiding this logic in a helper.  Also remove the
      useless events != 0 check and only busy loop once we know we actually
      have a poll method.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f641f13b
    • Christoph Hellwig's avatar
      net: don not detour through struct sock to find the poll waitqueue · d8bbd13b
      Christoph Hellwig authored
      For any open socket file descriptor sock->sk->sk_wq->wait will always
      point to sock->wq->wait.  That means we can do the shorter dereference
      and removal a NULL check and don't have to not worry about any RCU
      protection.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d8bbd13b
    • Christoph Hellwig's avatar
      net: simplify sock_poll_wait · dd979b4d
      Christoph Hellwig authored
      The wait_address argument is always directly derived from the filp
      argument, so remove it.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd979b4d
  2. 29 Jul, 2018 27 commits