[PATCH v2 0/5] Enable FLR for IDXD halt

Fenghua Yu posted 5 patches 1 year, 2 months ago
drivers/dma/idxd/idxd.h |  13 ++
drivers/dma/idxd/init.c | 479 ++++++++++++++++++++++++++++++++++++----
drivers/dma/idxd/irq.c  |  85 ++++---
3 files changed, 507 insertions(+), 70 deletions(-)
[PATCH v2 0/5] Enable FLR for IDXD halt
Posted by Fenghua Yu 1 year, 2 months ago
When IDXD device hits hardware errors, it enters halt state and triggers
an interrupt to IDXD driver. Currently IDXD driver just prints an error
message in the interrupt handler.

A better way to handle the interrupt is to do Function Level Reset (FLR)
and recover the device's hardware and software configurations to its
previous working state. The device and software can continue to run after
the interrupt.

This series enables this FLR handling for IDXD device whose WQs are all
user type. FLR handling for IDXD device whose WQs are kernel type
will be implemented in a future series.

Change log:
v2:
- Patch 3: Call a free helper to free all saved configs (Dave Jiang).
- Patch 3: Replace defined bitmap free function with existing
  bitmpa_free().

v1:
https://lore.kernel.org/lkml/20240705181519.4067507-1-fenghua.yu@intel.com/

Fenghua Yu (5):
  dmaengine: idxd: Add idxd_pci_probe_alloc() helper
  dmaengine: idxd: Binding and unbinding IDXD device and driver
  dmaengine: idxd: Add idxd_device_config_save() and
    idxd_device_config_restore() helpers
  dmaengine: idxd: Refactor halt handler
  dmaengine: idxd: Enable Function Level Reset (FLR) for halt

 drivers/dma/idxd/idxd.h |  13 ++
 drivers/dma/idxd/init.c | 479 ++++++++++++++++++++++++++++++++++++----
 drivers/dma/idxd/irq.c  |  85 ++++---
 3 files changed, 507 insertions(+), 70 deletions(-)

-- 
2.37.1
Re: [PATCH v2 0/5] Enable FLR for IDXD halt
Posted by Dave Jiang 1 year, 2 months ago

On 11/22/24 4:30 PM, Fenghua Yu wrote:
> When IDXD device hits hardware errors, it enters halt state and triggers
> an interrupt to IDXD driver. Currently IDXD driver just prints an error
> message in the interrupt handler.
> 
> A better way to handle the interrupt is to do Function Level Reset (FLR)
> and recover the device's hardware and software configurations to its
> previous working state. The device and software can continue to run after
> the interrupt.
> 
> This series enables this FLR handling for IDXD device whose WQs are all
> user type. FLR handling for IDXD device whose WQs are kernel type
> will be implemented in a future series.

Reviewed-by: Dave Jiang <dave.jiang@intel.com>

For the series.

> 
> Change log:
> v2:
> - Patch 3: Call a free helper to free all saved configs (Dave Jiang).
> - Patch 3: Replace defined bitmap free function with existing
>   bitmpa_free().
> 
> v1:
> https://lore.kernel.org/lkml/20240705181519.4067507-1-fenghua.yu@intel.com/
> 
> Fenghua Yu (5):
>   dmaengine: idxd: Add idxd_pci_probe_alloc() helper
>   dmaengine: idxd: Binding and unbinding IDXD device and driver
>   dmaengine: idxd: Add idxd_device_config_save() and
>     idxd_device_config_restore() helpers
>   dmaengine: idxd: Refactor halt handler
>   dmaengine: idxd: Enable Function Level Reset (FLR) for halt
> 
>  drivers/dma/idxd/idxd.h |  13 ++
>  drivers/dma/idxd/init.c | 479 ++++++++++++++++++++++++++++++++++++----
>  drivers/dma/idxd/irq.c  |  85 ++++---
>  3 files changed, 507 insertions(+), 70 deletions(-)
>
Re: [PATCH v2 0/5] Enable FLR for IDXD halt
Posted by Vinod Koul 1 year, 1 month ago
On Fri, 22 Nov 2024 15:30:23 -0800, Fenghua Yu wrote:
> When IDXD device hits hardware errors, it enters halt state and triggers
> an interrupt to IDXD driver. Currently IDXD driver just prints an error
> message in the interrupt handler.
> 
> A better way to handle the interrupt is to do Function Level Reset (FLR)
> and recover the device's hardware and software configurations to its
> previous working state. The device and software can continue to run after
> the interrupt.
> 
> [...]

Applied, thanks!

[1/5] dmaengine: idxd: Add idxd_pci_probe_alloc() helper
      commit: 087e89b69b5fe5529a8809a06b4b4680e54f87e2
[2/5] dmaengine: idxd: Binding and unbinding IDXD device and driver
      commit: 3ab45516772b813315324dc63a900703144e80c4
[3/5] dmaengine: idxd: Add idxd_device_config_save() and idxd_device_config_restore() helpers
      commit: 6078a315aec15e0776fa90347cf4eba7478cdbd7
[4/5] dmaengine: idxd: Refactor halt handler
      commit: 3e114fa0fd1506c9e75aa0e2eb6a9050eb16b2f8
[5/5] dmaengine: idxd: Enable Function Level Reset (FLR) for halt
      commit: 98d187a989036096feaa2fef1ec3b2240ecdeacf

Best regards,
-- 
~Vinod