[Intel-wired-lan] [PATCH 13/16] ice: Split irq_tracker into sw_irq_tracker and hw_irq_tracker

Bowers, AndrewX andrewx.bowers at intel.com
Wed Sep 26 17:05:51 UTC 2018


> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Anirudh Venkataramanan
> Sent: Wednesday, September 19, 2018 5:23 PM
> To: intel-wired-lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [PATCH 13/16] ice: Split irq_tracker into
> sw_irq_tracker and hw_irq_tracker
> 
> From: Preethi Banala <preethi.banala at intel.com>
> 
> For the PF driver, when mapping interrupts to queues, we need to request
> IRQs from the kernel and and we also have to allocate interrupts from the
> device.
> 
> Similarly, when the VF driver (iavf.ko) initializes, it requests the kernel IRQs
> that it needs but it can't directly allocate interrupts in the device.
> Instead, it sends a mailbox message to the ice driver, which then allocates
> interrupts in the device on the VF driver's behalf.
> 
> Currently both these cases end up having to reserve entries in
> pf->irq_tracker but irq_tracker itself is sized based on how many
> pf->vectors
> the PF driver needs. Under the right circumstances, the VF driver can fail to
> get entries in irq_tracker, which will result in the VF driver failing probe.
> 
> To fix this, sw_irq_tracker and hw_irq_tracker are introduced. The
> sw_irq_tracker tracks only the PF's IRQ request and doesn't play any role in
> VF init. hw_irq_tracker represents the device's interrupt space.
> When interrupts have to be allocated in the device for either PF or VF,
> hw_irq_tracker will be looked up to see if the device has run out of
> interrupts.
> 
> Signed-off-by: Preethi Banala <preethi.banala at intel.com>
> Signed-off-by: Anirudh Venkataramanan
> <anirudh.venkataramanan at intel.com>
> ---
> [Anirudh Venkataramanan <anirudh.venkataramanan at intel.com> rewrote
> commit message]
> ---
>  drivers/net/ethernet/intel/ice/ice.h      |  21 ++++--
>  drivers/net/ethernet/intel/ice/ice_lib.c  |  75 +++++++++++++------
> drivers/net/ethernet/intel/ice/ice_main.c | 116 +++++++++++++++++++++-
> --------
>  3 files changed, 148 insertions(+), 64 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers at intel.com>




More information about the Intel-wired-lan mailing list