Skip to content
  1. Aug 03, 2019
  2. Aug 02, 2019
  3. Aug 01, 2019
    • Nikolay Aleksandrov's avatar
      net: bridge: mcast: add delete due to fast-leave mdb flag · 3247b272
      Nikolay Aleksandrov authored
      
      
      In user-space there's no way to distinguish why an mdb entry was deleted
      and that is a problem for daemons which would like to keep the mdb in
      sync with remote ends (e.g. mlag) but would also like to converge faster.
      In almost all cases we'd like to age-out the remote entry for performance
      and convergence reasons except when fast-leave is enabled. In that case we
      want explicit immediate remote delete, thus add mdb flag which is set only
      when the entry is being deleted due to fast-leave.
      
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3247b272
    • Lucas Bates's avatar
      tc-testing: Clarify the use of tdc's -d option · 0eba31ef
      Lucas Bates authored
      
      
      The -d command line argument to tdc requires the name of a physical device
      on the system where the tests will be run. If -d has not been used, tdc
      will skip tests that require a physical device.
      
      This patch is intended to better document what the -d option does and how
      it is used.
      
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eba31ef
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2019-07-29' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 21947f46
      David S. Miller authored
      
      
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2019-07-29
      
      This series includes updates to mlx5 driver,
      1) Simplifications, cleanup and warning prints improvements
      
      2) From Vlad Buslov:
      Refactor mlx5 tc flow handling for unlocked execution (Part 1)
      
      Currently, all cls API hardware offloads driver callbacks require caller
      to hold rtnl lock when calling them. Cls API has already been updated to
      update software filters in parallel (on classifiers that support
      unlocked execution), however hardware offloads code still obtains rtnl
      lock before calling driver tc callbacks. This set implements partial
      support for unlocked execution that is leveraged by follow up
      refactorings in specific mlx5 tc subsystems and patch to cls API that
      implements API that allows drivers to register their callbacks as
      rtnl-unlocked.
      
      In mlx5 tc code mlx5e_tc_flow is the main structure that is used to
      represent tc filter. Currently, code the structure itself and its
      handlers in both tc and eswitch layers do not implement any kind of
      synchronizations and assume external global synchronization provided by
      rtnl lock instead. Implement following changes to remove dependency on
      rtnl lock in flow handling code that are intended to be used a
      groundwork for following changes to provide fully rtnl-independent mlx5
      tc:
      
      - Extend struct mlx5e_tc_flow with atomic reference counter and rcu to
        allow concurrent access from multiple tc and neigh update workqueue
        instances without introducing any additional locks specific to the
        structure. Its 'flags' field type is changed to atomic bitmask ops which
        is necessary for tc to interact with other concurrent tc instances or
        concurrent neigh update that need to skip flows that are not fully
        initialized (new INIT_DONE flow flag) and can change the flags
        according to neighbor state (flipping OFFLOADED flag).
      
      - Protect unready flows list by new uplink_priv->unready_flows_lock
        mutex.
      
      - Convert calls to netdev APIs that require rtnl lock in flow handling
        code to their rcu counterparts.
      
      - Modify eswitch code that is called from tc layer and assume implicit
        external synchronization to be concurrency safe: change
        esw->offloads.num_flows type to atomic integer and re-arrange
        esw->state_lock usage to protect additional data.
      
      Some of approaches to synchronizations presented in this patch set are
      quite complicated (lockless concurrent usage of data structures with rcu
      and reference counting, using fine-grained locking when necessary, retry
      mechanisms to handle concurrent insertion of another instance of data
      structure with same key, etc.). This is necessary to allow calling the
      firmware in parallel in most cases, which is the main motivation of this
      change since firmware calls are mach heavier operation than atomic
      operations, multitude of locks and potential multiple retries during
      concurrent accesses to same elements.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      21947f46
    • Tony Nguyen's avatar
      ice: Bump version number · 3015b8fc
      Tony Nguyen authored
      
      
      Update driver version to 0.7.5
      
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      3015b8fc
    • Akeem G Abodunrin's avatar
      ice: Remove flag to track VF interrupt status · b67f25d7
      Akeem G Abodunrin authored
      
      
      As a result of refactoring of VF VSIs interrupts code, there is no
      need to track its configuration status again with ICE_VF_STATE_CFG_INTR
      flag - In fact, it is not being checked anywhere in the code right now, so
      this patch removes the dead code as applicable to the flag.
      
      Signed-off-by: default avatarAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      b67f25d7
    • Brett Creeley's avatar
      ice: Remove unnecessary flag ICE_FLAG_MSIX_ENA · ba880734
      Brett Creeley authored
      
      
      This flag is not needed and is called every time we re-enable interrupts
      in the hotpath so remove it. Also remove ice_vsi_req_irq() because it
      was a wrapper function for ice_vsi_req_irq_msix() whose sole purpose was
      checking the ICE_FLAG_MSIX_ENA flag.
      
      Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ba880734
    • Akeem G Abodunrin's avatar
      ice: Don't return error for disabling LAN Tx queue that does exist · 99214944
      Akeem G Abodunrin authored
      
      
      Since Tx rings are being managed by FW/NVM, Tx rings might have not been
      set up or driver had already wiped them off - In that case, call to
      disable LAN Tx queue is being returned as not in existence. This patch
      makes sure we don't return unnecessary error for such scenario.
      
      Signed-off-by: default avatarAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      99214944
    • Brett Creeley's avatar
      ice: Remove duplicate code in ice_alloc_rx_bufs · a1e99685
      Brett Creeley authored
      
      
      Currently if the call to ice_alloc_mapped_page() fails we jump to the
      no_buf label, possibly call ice_release_rx_desc(), and return true
      indicating that there is more work to do. In the success case we just
      fall out of the while loop, possibly call ice_alloc_mapped_page(), and
      return false saying we exhausted cleaned_count. This flow can be
      improved by breaking if ice_alloc_mapped_page() fails and then the flow
      outside of the while loop is the same for the failure and success case.
      
      Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      a1e99685
    • Brett Creeley's avatar
      ice: Add stats for Rx drops at the port level · 56923ab6
      Brett Creeley authored
      
      
      Currently we are not reporting dropped counts at the port level to
      ethtool or netlink. This was found when debugging Rx dropped issues
      and the total packets sent did not equal the total packets received
      minus the rx_dropped, which was very confusing. To determine dropped
      counts at the port level we need to read the PRTRPB_RDPC register.
      To fix reporting we will store the dropped counts in the PF's
      rx_discards. This will be reported to netlink by storing it in the
      PF VSI's rx_missed_errors signaling that the receiver missed the
      packet. Also, we will report this to ethtool in the rx_dropped.nic
      field.
      
      Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      56923ab6