lkml.org 
[lkml]   [2020]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 0/3] Support managed interrupts for platform devices
Date
So far, managed interrupts are only used for PCI MSIs. This series add
platform device support for managed interrupts. Initially this topic was
discussed at [0].

The method to enable managed interrupts is to allocate all the IRQs for
the device, and then switch the interrupts to managed - this is done
through new function irq_update_affinity_desc().

API platform_get_irqs_affinity() is added as a helper to manage this work,
such that we don't need to export irq_update_affinity_desc() or
irq_create_affinity_masks().

For now, the HiSilicon SAS v2 hw driver is switched over. This is used
in the D05 dev board.

Performance gain observed for 6x SAS SSDs is ~357K -> 420K IOPs for fio read.

[0] https://lore.kernel.org/lkml/84a9411b-4ae3-1928-3d35-1666f2687ec8@huawei.com/

Changes since v1:
- Update authorship on genirq change

John Garry (3):
genirq/affinity: Add irq_update_affinity_desc()
Driver core: platform: Add platform_get_irqs_affinity()
scsi: hisi_sas: Expose HW queues for v2 hw

drivers/base/platform.c | 58 +++++++++++++++++++++
drivers/scsi/hisi_sas/hisi_sas.h | 4 ++
drivers/scsi/hisi_sas/hisi_sas_main.c | 11 ++++
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 71 ++++++++++++++++++++++----
include/linux/interrupt.h | 8 +++
include/linux/platform_device.h | 5 ++
kernel/irq/manage.c | 19 +++++++
7 files changed, 165 insertions(+), 11 deletions(-)

--
2.26.2

\
 
 \ /
  Last update: 2020-10-29 02:22    [W:0.098 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site