1. 13 9月, 2019 1 次提交
  2. 05 9月, 2019 4 次提交
  3. 04 9月, 2019 5 次提交
  4. 27 8月, 2019 9 次提交
  5. 24 8月, 2019 2 次提交
    • A
      ice: Fix issues updating VSI MAC filters · bbb968e8
      Akeem G Abodunrin 提交于
      VSI, especially VF could request to add or remove filter for another VSI,
      driver should really guide such request and disallow it.
      However, instead of returning error for such malicious request, driver
      can simply return success.
      
      In addition, we are not tracking number of MAC filters configured per
      VF correctly - and this leads to issue updating VF MAC filters whenever
      they were removed and re-configured via bringing VF interface down and
      up. Also, since VF could send request to update multiple MAC filters at
      once, driver should program those filters individually in the switch, in
      order to determine which action resulted to error, and communicate
      accordingly to the VF.
      
      So, with this changes, we now track number of filters added right from
      when VF resources allocation is done, and could properly add filters for
      both trusted and non_trusted VFs, without MAC filters mis-match issue in
      the switch...
      
      Also refactor code, so that driver can use new function to add or remove
      MAC filters.
      Signed-off-by: NAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      bbb968e8
    • B
      ice: update ethtool stats on-demand · 5a4a8673
      Bruce Allan 提交于
      Users expect ethtool statistics to be updated on-demand when invoking
      'ethtool -S <iface>' instead of providing a snapshot of statistics taken
      once a second (the frequency of the watchdog task where stats are currently
      updated).  Update stats every time 'ethtool -S <iface>' is run.
      
      Also, fix an indentation style issue and an unnecessary local variable
      initialization in ice_get_ethtool_stats() discovered while investigating
      the subject issue.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5a4a8673
  6. 21 8月, 2019 3 次提交
  7. 01 8月, 2019 6 次提交
  8. 15 7月, 2019 1 次提交
  9. 21 6月, 2019 1 次提交
  10. 31 5月, 2019 2 次提交
  11. 30 5月, 2019 2 次提交
  12. 29 5月, 2019 4 次提交
    • B
      ice: Add a helper to trigger software interrupt · e89e899f
      Brett Creeley 提交于
      Add a new function ice_trigger_sw_intr to trigger interrupts.
      Signed-off-by: NBrett Creeley <brett.creeley@intel.com>
      Signed-off-by: NAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e89e899f
    • M
      ice: Change message level · 4cc82aaa
      Mitch Williams 提交于
      Change the message level of the MTU change log message from debug to
      info.
      Signed-off-by: NMitch Williams <mitch.a.williams@intel.com>
      Signed-off-by: NAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      4cc82aaa
    • M
      ice: Check all VFs for MDD activity, don't disable · 23c01122
      Mitch Williams 提交于
      Don't use the mdd_detected variable as an exit condition for this loop;
      the first VF to NOT have an MDD event will cause the loop to terminate.
      
      Instead just look at all of the VFs, but don't disable them. This
      prevents proper release of resources if the VFs are rebooted or the VF
      driver reloaded. Instead, just log a message and call out repeat
      offenders.
      
      To make it clear what we are doing, use a differently-named variable in
      the loop.
      Signed-off-by: NMitch Williams <mitch.a.williams@intel.com>
      Signed-off-by: NAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      23c01122
    • B
      ice: Refactor interrupt tracking · cbe66bfe
      Brett Creeley 提交于
      Currently we have two MSI-x (IRQ) trackers, one for OS requested MSI-x
      entries (sw_irq_tracker) and one for hardware MSI-x vectors
      (hw_irq_tracker). Generally the sw_irq_tracker has less entries than the
      hw_irq_tracker because the hw_irq_tracker has entries equal to the max
      allowed MSI-x per PF and the sw_irq_tracker is mainly the minimum (non
      SR-IOV portion of the vectors, kernel granted IRQs). All of the non
      SR-IOV portions of the driver (i.e. LAN queues, RDMA queues, OICR, etc.)
      take at least one of each type of tracker resource. SR-IOV only grabs
      entries from the hw_irq_tracker. There are a few issues with this approach
      that can be seen when doing any kind of device reconfiguration (i.e.
      ethtool -L, SR-IOV, etc.). One of them being, any time the driver creates
      an ice_q_vector and associates it to a LAN queue pair it will grab and
      use one entry from the hw_irq_tracker and one from the sw_irq_tracker.
      If the indices on these does not match it will cause a Tx timeout, which
      will cause a reset and then the indices will match up again and traffic
      will resume. The mismatched indices come from the trackers not being the
      same size and/or the search_hint in the two trackers not being equal.
      Another reason for the refactor is the co-existence of features with
      SR-IOV. If SR-IOV is enabled and the interrupts are taken from the end
      of the sw_irq_tracker then other features can no longer use this space
      because the hardware has now given the remaining interrupts to SR-IOV.
      
      This patch reworks how we track MSI-x vectors by removing the
      hw_irq_tracker completely and instead MSI-x resources needed for SR-IOV
      are determined all at once instead of per VF. This can be done because
      when creating VFs we know how many are wanted and how many MSI-x vectors
      each VF needs. This also allows us to start using MSI-x resources from
      the end of the PF's allowed MSI-x vectors so we are less likely to use
      entries needed for other features (i.e. RDMA, L2 Offload, etc).
      
      This patch also reworks the ice_res_tracker structure by removing the
      search_hint and adding a new member - "end". Instead of having a
      search_hint we will always search from 0. The new member, "end", will be
      used to manipulate the end of the ice_res_tracker (specifically
      sw_irq_tracker) during runtime based on MSI-x vectors needed by SR-IOV.
      In the normal case, the end of ice_res_tracker will be equal to the
      ice_res_tracker's num_entries.
      
      The sriov_base_vector member was added to the PF structure. It is used
      to represent the starting MSI-x index of all the needed MSI-x vectors
      for all SR-IOV VFs. Depending on how many MSI-x are needed, SR-IOV may
      have to take resources from the sw_irq_tracker. This is done by setting
      the sw_irq_tracker->end equal to the pf->sriov_base_vector. When all
      SR-IOV VFs are removed then the sw_irq_tracker->end is reset back to
      sw_irq_tracker->num_entries. The sriov_base_vector, along with the VF's
      number of MSI-x (pf->num_vf_msix), vf_id, and the base MSI-x index on
      the PF (pf->hw.func_caps.common_cap.msix_vector_first_id), is used to
      calculate the first HW absolute MSI-x index for each VF, which is used
      to write to the VPINT_ALLOC[_PCI] and GLINT_VECT2FUNC registers to
      program the VFs MSI-x PCI configuration bits. Also, the sriov_base_vector
      is used along with VF's num_vf_msix, vf_id, and q_vector->v_idx to
      determine the MSI-x register index (used for writing to GLINT_DYN_CTL)
      within the PF's space.
      
      Interrupt changes removed any references to hw_base_vector, hw_oicr_idx,
      and hw_irq_tracker. Only sw_base_vector, sw_oicr_idx, and sw_irq_tracker
      variables remain. Change all of these by removing the "sw_" prefix to
      help avoid confusion with these variables and their use.
      Signed-off-by: NBrett Creeley <brett.creeley@intel.com>
      Signed-off-by: NAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      cbe66bfe