Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

2020-11-23 Thread John Garry
Hi Marc, Right, but if the driver is removed then the interrupts should be deallocated, right? When removing the driver we just call free_irq(), which removes the handler and disables the interrupt. But about the irq_desc, this is created when the mapping is created in irq_create_fwspec_mapp

Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

2020-11-23 Thread John Garry
Hi Marc, So is there a reason for which irq dispose mapping is not a requirement for drivers when finished with the irq? because of shared interrupts? For a bunch of reasons: IRQ number used to be created 1:1 with their physical counterpart, so there wasn't a need to "get rid" of the associate

[PATCH 2/3] scsi: hisi_sas: Fix up probe error handling for v3 hw

2020-11-23 Thread John Garry
From: Xiang Chen Fix some rollbacks in function hisi_sas_v3_probe() and interrupt_init_v3_hw(). Fixes: 8d98416a55eb ("scsi: hisi_sas: Switch v3 hw to MQ") Signed-off-by: Xiang Chen Signed-off-by: John Garry --- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 26 +++-

[PATCH 0/3] hisi_sas: A small bunch of misc patches

2020-11-23 Thread John Garry
This series contains a small bunch of patches for the driver, including: - Fix-up on error paths for v3 hw driver - Relocate as much debugfs code as possible to v3 hw driver since no other hw drivers support it - A small tidy-up patch John Garry (1): scsi: hisi_sas: Reduce some indirection in

[PATCH 3/3] scsi: hisi_sas: Move debugfs code to v3 hw driver

2020-11-23 Thread John Garry
From: Luo Jiaxing Relocate all the debugfs code for DFX to v3 hw as there are only longer plans to support earlier HW versions. Signed-off-by: Luo Jiaxing Signed-off-by: John Garry --- drivers/scsi/hisi_sas/hisi_sas.h | 28 - drivers/scsi/hisi_sas/hisi_sas_main.c | 1346

[PATCH 1/3] scsi: hisi_sas: Reduce some indirection in v3 hw driver

2020-11-23 Thread John Garry
Sometimes local functions are called indirectly from the hw driver, which only makes the code harder to follow. Remove these. Method .hw_init is only called from platform driver probe, which is not relevant, so don't set this either. Signed-off-by: John Garry --- drivers/scsi/his

[PATCH v2 1/3] scsi: hisi_sas: Reduce some indirection in v3 hw driver

2020-11-24 Thread John Garry
Sometimes local functions are called indirectly from the hw driver, which only makes the code harder to follow. Remove these. Method .hw_init is only called from platform driver probe, which is not relevant, so don't set this either. Signed-off-by: John Garry --- drivers/scsi/his

[PATCH v2 2/3] scsi: hisi_sas: Fix up probe error handling for v3 hw

2020-11-24 Thread John Garry
From: Xiang Chen Fix some rollbacks in function hisi_sas_v3_probe() and interrupt_init_v3_hw(). Fixes: 8d98416a55eb ("scsi: hisi_sas: Switch v3 hw to MQ") Signed-off-by: Xiang Chen Signed-off-by: John Garry --- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 26 +++-

[PATCH v2 0/3] hisi_sas: A small bunch of misc patches

2020-11-24 Thread John Garry
This series contains a small bunch of patches for the driver, including: - Fix-up on error paths for v3 hw driver - Relocate as much debugfs code as possible to v3 hw driver since no other hw drivers support it - A small tidy-up patch Difference to v1: - make debugfs_init_v3_hw() static John

[PATCH v2 3/3] scsi: hisi_sas: Move debugfs code to v3 hw driver

2020-11-24 Thread John Garry
From: Luo Jiaxing Relocate all the debugfs code for DFX to v3 hw as there are only longer plans to support earlier HW versions. Signed-off-by: Luo Jiaxing Signed-off-by: John Garry --- drivers/scsi/hisi_sas/hisi_sas.h | 28 - drivers/scsi/hisi_sas/hisi_sas_main.c | 1346

Re: [PATCH v2 1/4] sbitmap: optimise sbitmap_deferred_clear()

2020-11-24 Thread John Garry
s code generation of sbitmap_find_bit_in_index(). Signed-off-by: Pavel Begunkov Looks ok, even though a bit odd not be passing a struct sbitmap * now Reviewed-by: John Garry

Re: [PATCH v2 2/4] sbitmap: remove swap_lock

2020-11-24 Thread John Garry
On 22/11/2020 15:35, Pavel Begunkov wrote: map->swap_lock protects map->cleared from concurrent modification, however sbitmap_deferred_clear() is already atomically drains it, so it's guaranteed to not loose bits on concurrent sbitmap_deferred_clear(). A one threaded tag heavy test on top of nul

[PATCH v6 03/10] perf pmu: Add pmu_id()

2020-12-04 Thread John Garry
Add a function to read the PMU id sysfs entry. This is only done for uncore PMUs where this would possibly be relevant. Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/pmu.c | 18 ++ tools/perf/util/pmu.h | 1 + 2 files changed, 19 insertions(+) diff --git

[PATCH v6 01/10] perf jevents: Add support for an extra directory level

2020-12-04 Thread John Garry
Currently only upto a level 2 directory is supported, in form vendor/platform. Add support for a further level, to support vendor/platform sub-directories in future, which will be vendor/platform/cpu and vendor/platform/sys. Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/pmu

[PATCH v6 00/10] perf pmu-events: Support event aliasing for system PMUs

2020-12-04 Thread John Garry
pt - Rebase to acme perf/core from 30 Oct - Fix up imx8 event names according to request from Joakim Joakim Zhang (1): perf vendor events: Add JSON metrics for imx8mm DDR Perf John Garry (9): perf jevents: Add support for an extra directory level perf jevents: Add support for system events t

[PATCH v6 06/10] perf metricgroup: Fix metrics using aliases covering multiple PMUs

2020-12-04 Thread John Garry
xcore 4,254,148 unc_cbo_xsnp_response.miss_eviction 213,352 unc_cbo_xsnp_response.miss_xcore 1.000938151 seconds time elapsed Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/metricgroup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(

[PATCH v6 04/10] perf pmu: Add pmu_add_sys_aliases()

2020-12-04 Thread John Garry
atch, same as uncore event aliases matched by CPUID Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/pmu.c | 78 +++ tools/perf/util/pmu.h | 2 ++ 2 files changed, 80 insertions(+) diff --git a/tools/perf/util/pmu.c b/tools/p

[PATCH v6 07/10] perf metricgroup: Split up metricgroup__print()

2020-12-04 Thread John Garry
To aid supporting system event metric groups, break up the function metricgroup__print() into a part which iterates metrics and a part which actually "prints" the metric. No functional change intended. Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/metricgro

[PATCH v6 02/10] perf jevents: Add support for system events tables

2020-12-04 Thread John Garry
sses. Unit: hisi_sccl,l3c ", .topic = "uncore l3c", .long_desc = "Total read accesses", .pmu = "hisi_sccl,l3c", }, { .name = "uncore_hisi_l3c.wr_cpipe", .event = "event=0x1", .desc = "Total wri

[PATCH v6 10/10] perf vendor events: Add JSON metrics for imx8mm DDR Perf

2020-12-04 Thread John Garry
From: Joakim Zhang Add JSON metrics for imx8mm DDR Perf. Signed-off-by: Joakim Zhang Signed-off-by: John Garry Acked-by: Kajol Jain --- .../arch/arm64/freescale/imx8mm/sys/ddrc.json | 39 +++ .../arm64/freescale/imx8mm/sys/metrics.json | 18 + tools/perf/pmu-events

[PATCH v6 08/10] perf metricgroup: Support printing metric groups for system PMUs

2020-12-04 Thread John Garry
Currently printing metricgroups for core- or uncore-based events matched by CPUID is supported. Extend this for system events. Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/metricgroup.c | 64 --- 1 file changed, 60 insertions(+), 4

[PATCH v6 09/10] perf metricgroup: Support adding metrics for system PMUs

2020-12-04 Thread John Garry
Currently adding metrics for core- or uncore-based events matched by CPUID is supported. Extend this for system events. Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/metricgroup.c | 66 +++ 1 file changed, 60 insertions(+), 6 deletions

[PATCH v6 05/10] perf evlist: Change perf_evlist__splice_list_tail() ordering

2020-12-04 Thread John Garry
Function find_evsel_group() expects events to be ordered such that they are grouped after their leader. Modify perf_evlist__splice_list_tail() to guarantee this (ordering). [Should prob also change the function name] Signed-off-by: John Garry Acked-by: Kajol Jain --- tools/perf/util/evlist.c

Re: [PATCH v6 00/12] perf tools: fix perf stat with large socket IDs

2020-12-04 Thread John Garry
: John Garry I still think that vendors (like us) need to fix/improve their firmware tables so that we don't get silly big numbers for socket/package IDs, like S5418-D0, below: $./perf stat -a --per-die Performance counter stats for 'system wide': S36-D0 48 72,216.31

Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

2020-11-24 Thread John Garry
Hi Marc, So initially in the msi_prepare method we setup the its dev - this is from the mbigen probe. Then when all the irqs are unmapped later for end device driver removal, we release this its device in its_irq_domain_free(). But I don't see anything to set it up again. Is it improper to have

Re: [PATCH v2 0/4] perf drivers: Add sysfs identifier file

2020-11-25 Thread John Garry
On 25/11/2020 15:44, Will Deacon wrote: Applied the hisi and smmu parts to will (for-next/perf), thanks! [1/4] drivers/perf: hisi: Add identifier sysfs file https://git.kernel.org/will/c/ac4511c9364c [...] [4/4] perf/smmuv3: Support sysfs identifier file https://git.kernel.org/will

[PATCH v3 4/5] Driver core: platform: Add devm_platform_get_irqs_affinity()

2020-11-25 Thread John Garry
because the only current in-tree user will also use devm method for requesting the interrupts; as such, the function is made as devm as it can ensure ordering of freeing the irq and disposing of the mapping. Signed-off-by: John Garry --- drivers/base/platform.c | 114

[PATCH v3 5/5] scsi: hisi_sas: Expose HW queues for v2 hw

2020-11-25 Thread John Garry
ge of this. Flag Scsi_host.host_tagset is also set to ensure that the HBA is not sent more commands than it can handle. However the driver still does not use request tag for IPTT as there are many HW bugs means that special rules apply for IPTT allocation. Signed-off-by: John Garry --- drivers/scs

[PATCH v3 0/5] Support managed interrupts for platform devices

2020-11-25 Thread John Garry
e API to accept min and max vectors John Garry (5): genirq/affinity: Add irq_update_affinity_desc() ACPI: Make acpi_dev_irqresource_disabled() public driver core: platform: Add platform_put_irq() Driver core: platform: Add devm_platform_get_irqs_affinity() scsi: hisi_sas: Expose HW queues f

[PATCH v3 1/5] genirq/affinity: Add irq_update_affinity_desc()

2020-11-25 Thread John Garry
Add a function to allow the affinity of an interrupt be switched to managed, such that interrupts allocated for platform devices may be managed. Suggested-by: Thomas Gleixner Signed-off-by: John Garry --- include/linux/interrupt.h | 8 + kernel/irq/manage.c | 63

[PATCH v3 2/5] ACPI: Make acpi_dev_irqresource_disabled() public

2020-11-25 Thread John Garry
To allow the platform device to "put" an irq, make the function to reset an ACPI companion device irq resource public. Signed-off-by: John Garry --- drivers/acpi/resource.c | 2 +- include/linux/acpi.h| 5 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dr

[PATCH v3 3/5] driver core: platform: Add platform_put_irq()

2020-11-25 Thread John Garry
-by: John Garry --- drivers/base/platform.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 88aef93eb4dd..3eeda3746701 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -289,6 +289,20 @@

Re: [PATCH v3 2/5] ACPI: Make acpi_dev_irqresource_disabled() public

2020-11-26 Thread John Garry
On 25/11/2020 17:43, Rafael J. Wysocki wrote: On Wed, Nov 25, 2020 at 6:25 PM John Garry wrote: To allow the platform device to "put" an irq, make the function to reset an ACPI companion device irq resource public. Signed-off-by: John Garry I'd rather move it to kernel/reso

Re: [PATCH v3 1/5] genirq/affinity: Add irq_update_affinity_desc()

2020-11-26 Thread John Garry
Hi Daniel, On Thu, Nov 26, 2020 at 01:20:37AM +0800, John Garry wrote: + activated = irqd_is_activated(&desc->irq_data); + if (activated) + irq_domain_deactivate_irq(&desc->irq_data); + + if (affinity->is_managed) { + irqd_se

Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

2020-11-26 Thread John Garry
Hi Marc, Right, I did consider this. FWIW, I've pushed my hack branch[1] Did you miss that reference? out with a couple of patches for you to try (the top 3 patches). They allow platform-MSI domains created by devices (mbigen, ICU) to be advertised as shared between devices, so that the lo

Re: [PATCH v3 3/5] driver core: platform: Add platform_put_irq()

2020-11-26 Thread John Garry
On 26/11/2020 09:28, Marc Zyngier wrote: On 2020-11-25 17:20, John Garry wrote: Add a function to tear down the work which was done in platform_get_irq() for when the device driver is done with the irq. For ACPI companion devices the irq resource is set as disabled, as this resource is

Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

2020-11-26 Thread John Garry
Hi Marc, I did: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=irq/hacks ok, I'll have a look You still should be able to enable my favorite CONFIG_DEBUG_TEST_DRIVER_REMOVE=y, while the distro still boot. But I'll just test if you want. Ah! Let me try that

Re: [PATCH v2 0/4] perf drivers: Add sysfs identifier file

2020-11-26 Thread John Garry
On 26/11/2020 01:35, Joakim Zhang wrote: @Joakim, can you resend 3/4? And I think that we should keep the explicit support for "fsl,imx8m-ddr-pmu" as a good practice in imx_ddr_pmu_dt_ids[], while also adding the soc-specific sub compat string support Yes, thanks John. I will follow up. OK, a

[RFC PATCH v2 1/2] blk-mq: Clean up references to old requests when freeing rqs

2020-12-17 Thread John Garry
: John Garry --- block/blk-mq-sched.c | 2 +- block/blk-mq-tag.c | 2 +- block/blk-mq.c | 20 ++-- block/blk-mq.h | 2 ++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index deff4e826e23..fa1035e1ac6e

[RFC PATCH v2 0/2] blk-mq: Avoid use-after-free for accessing old requests

2020-12-17 Thread John Garry
://lore.kernel.org/linux-block/04e2f9e8-79fa-f1cb-ab23-4a15bf3f6...@kernel.dk/ Details are in the commit messages. Most important detail is that fastpath is untouched. The issue addressed in patch 1/2 is pretty easy to reproduce, 2/2 not so much. Differences to v1: - add 2nd patch John Garry (2): blk-mq

[RFC PATCH v2 2/2] blk-mq: Lockout tagset iter when freeing rqs

2020-12-17 Thread John Garry
return iter_data->fn(hctx, rq, iter_data->data, reserved); + } return true; } This delay increases the window for the iter in between getting the request reference and actually dereferencing it. To solve this problem, lockout the per-hw queue tagset iterator

Re: [PATCH v2 01/17] ibmvfc: add vhost fields and defaults for MQ enablement

2020-12-17 Thread John Garry
On 08/12/2020 22:37, Tyrel Datwyler wrote: On 12/7/20 3:56 AM, Hannes Reinecke wrote: On 12/4/20 3:26 PM, Brian King wrote: On 12/2/20 11:27 AM, Tyrel Datwyler wrote: On 12/2/20 7:14 AM, Brian King wrote: On 12/1/20 6:53 PM, Tyrel Datwyler wrote: Introduce several new vhost fields for managi

Re: [RFC PATCH v2 2/2] blk-mq: Lockout tagset iter when freeing rqs

2020-12-18 Thread John Garry
On 18/12/2020 01:55, Bart Van Assche wrote: On 12/17/20 3:07 AM, John Garry wrote: diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index a6df2d5df88a..853ed5b889aa 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -358,10 +358,19 @@ void blk_mq_tagset_busy_iter(struct

Re: [RFC PATCH v2 2/2] blk-mq: Lockout tagset iter when freeing rqs

2020-12-18 Thread John Garry
On 18/12/2020 03:31, Ming Lei wrote: 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index a6df2d5df88a..853ed5b889aa 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -358,10 +358,19 @@ void blk_mq_tagset_busy_iter(struct blk_mq

Re: [PATCH] lib/logic_pio: Fix overlap check for pio registery

2020-12-18 Thread John Garry
On 18/12/2020 06:23, Jiahui Cen wrote: Since the [start, end) is a half-open interval, a range with the end equal to the start of another range should not be considered as overlapped. Signed-off-by: Jiahui Cen --- lib/logic_pio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --

[RFC PATCH] blk-mq: Clean up references when freeing rqs

2020-12-01 Thread John Garry
those requests in the driver tagset when freeing. This is done with a cmpxchg to make safe any race with setting the driver tagset request from another queue. Signed-off-by: John Garry -- Set as RFC as I need to test more. And not sure on solution method, as Bart had another idea. diff --git a/block

Re: [PATCH v4 1/5] genirq/affinity: Add irq_update_affinity_desc()

2020-12-01 Thread John Garry
Hi Thomas, I'll go with something extra like: Add a function to allow the affinity of an interrupt be switched to managed, such that interrupts allocated for platform devices may be managed. Could you please add a paragraph which explains the limitations of that interface? This new interf

Re: [RESEND PATCH v3 0/4] iommu/iova: Solve longterm IOVA issue

2020-12-01 Thread John Garry
On 17/11/2020 10:25, John Garry wrote: Hi Will, Is there any chance that we can get these picked up for 5.11? We've seen this issue solved here for a long time. Or, @Robin, let me know if not happy with this since v1. BTW, patch #4 has been on the go for ~1 year now, and is a nice

[PATCH v5 0/5] Support managed interrupts for platform devices

2020-12-02 Thread John Garry
removal - Change API to accept min and max vectors John Garry (5): genirq/affinity: Add irq_update_affinity_desc() resource: Add irqresource_disabled() ACPI: Drop acpi_dev_irqresource_disabled() Driver core: platform: Add devm_platform_get_irqs_affinity() scsi: hisi_sas: Expose HW

[PATCH v5 1/5] genirq/affinity: Add irq_update_affinity_desc()

2020-12-02 Thread John Garry
means double init Suggested-by: Thomas Gleixner Signed-off-by: John Garry --- include/linux/interrupt.h | 8 + kernel/irq/manage.c | 70 +++ 2 files changed, 78 insertions(+) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index

[PATCH v5 2/5] resource: Add irqresource_disabled()

2020-12-02 Thread John Garry
Add a common function to set the fields for a irq resource to disabled, which mimics what is done in acpi_dev_irqresource_disabled(), with a view to replace that function. Signed-off-by: John Garry Reviewed-by: Rafael J. Wysocki --- include/linux/ioport.h | 7 +++ 1 file changed, 7

[PATCH v5 5/5] scsi: hisi_sas: Expose HW queues for v2 hw

2020-12-02 Thread John Garry
ge of this. Flag Scsi_host.host_tagset is also set to ensure that the HBA is not sent more commands than it can handle. However the driver still does not use request tag for IPTT as there are many HW bugs means that special rules apply for IPTT allocation. Signed-off-by: John Garry --- drivers/scs

[PATCH v5 3/5] ACPI: Drop acpi_dev_irqresource_disabled()

2020-12-02 Thread John Garry
The functionality of acpi_dev_irqresource_disabled() is same as in common irqresource_disabled(), so drop acpi_dev_irqresource_disabled() in favour of that function. Signed-off-by: John Garry Acked-by: Rafael J. Wysocki --- drivers/acpi/resource.c | 17 + 1 file changed, 5

[PATCH v5 4/5] Driver core: platform: Add devm_platform_get_irqs_affinity()

2020-12-02 Thread John Garry
will also use devm method for requesting the interrupts; as such, the function is made as devm as it can ensure ordering of freeing the irq and disposing of the mapping. Signed-off-by: John Garry --- drivers/base/platform.c | 121 include/linux

Re: [RFC PATCH] blk-mq: Clean up references when freeing rqs

2020-12-02 Thread John Garry
On 02/12/2020 03:31, Ming Lei wrote: On Tue, Dec 01, 2020 at 09:02:18PM +0800, John Garry wrote: It has been reported many times that a use-after-free can be intermittently found when iterating busy requests: - https://lore.kernel.org/linux-block/8376443a-ec1b-0cef-8244-ed584b96f

Re: [RESEND PATCH v3 0/4] iommu/iova: Solve longterm IOVA issue

2020-12-02 Thread John Garry
On 01/12/2020 21:02, Will Deacon wrote: cc'ing some more people who have touched iova code recently On Tue, Dec 01, 2020 at 03:35:02PM +0000, John Garry wrote: On 17/11/2020 10:25, John Garry wrote: Is there any chance that we can get these picked up for 5.11? We've seen this is

Re: [RFC PATCH] blk-mq: Clean up references when freeing rqs

2020-12-03 Thread John Garry
On 03/12/2020 00:55, Ming Lei wrote: Hi Ming, Yeah, so I said that was another problem which you mentioned there, which I'm not addressing, but I don't think that I'm making thing worse here. The thing is that this patch does not fix the issue completely. So AFAICS, the blk-mq/sched code doe

Re: [RESEND PATCH v3 0/4] iommu/iova: Solve longterm IOVA issue

2020-12-03 Thread John Garry
On 03/12/2020 06:04, Dmitry Safonov wrote: On Tue, 1 Dec 2020 at 21:50, Will Deacon wrote: On Tue, 17 Nov 2020 18:25:30 +0800, John Garry wrote: This series contains a patch to solve the longterm IOVA issue which leizhen originally tried to address at [0]. A sieved kernel log is at the

[PATCH 2/3] iommu: Stop exporting alloc_iova_mem()

2020-12-03 Thread John Garry
It is not used outside iova.c Signed-off-by: John Garry --- drivers/iommu/iova.c | 3 +-- include/linux/iova.h | 6 -- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c index 4803bd83447d..9fed0b040747 100644 --- a/drivers/iommu/iova.c

[PATCH 1/3] iommu: Delete split_and_remove_iova()

2020-12-03 Thread John Garry
Function split_and_remove_iova() has not been referenced since commit e70b081c6f37 ("iommu/vt-d: Remove IOVA handling code from the non-dma_ops path"), so delete it. Signed-off-by: John Garry --- drivers/iommu/iova.c | 41 - include/linux/i

[PATCH 0/3] IOMMU: Some IOVA code tidy-up

2020-12-03 Thread John Garry
This series contains some minor tidy-ups by deleting an unreferenced function and unexporting some functions, highlighted by: https://lore.kernel.org/linux-iommu/6e09d847-fb7f-1ec1-02bf-f0c8b3158...@huawei.com/T/#med5a019f9d3835c162c16a48f34d05cc0111b0ca John Garry (3): iommu: Delete

[PATCH 3/3] iommu: Stop exporting free_iova_mem()

2020-12-03 Thread John Garry
It has no user outside iova.c Signed-off-by: John Garry --- drivers/iommu/iova.c | 3 +-- include/linux/iova.h | 5 - 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c index 9fed0b040747..f68fe4c0df28 100644 --- a/drivers/iommu/iova.c

[PATCH 0/3] iommu/iova: Add CPU hotplug handler to flush rcaches to core code

2021-03-01 Thread John Garry
The Intel IOMMU driver supports flushing the per-CPU rcaches when a CPU is offlined. Let's move it to core code, so everyone can take advantage. Also correct a code comment. Based on v5.12-rc1. Tested on arm64 only. John Garry (3): iova: Add CPU hotplug handler to flush rcaches iommu

[PATCH 2/3] iommu/vt-d: Remove IOVA domain rcache flushing for CPU offlining

2021-03-01 Thread John Garry
Now that the core code handles flushing per-IOVA domain CPU rcaches, remove the handling here. Signed-off-by: John Garry --- drivers/iommu/intel/iommu.c | 31 --- include/linux/cpuhotplug.h | 1 - 2 files changed, 32 deletions(-) diff --git a/drivers/iommu/intel

[PATCH 3/3] iova: Correct comment for free_cpu_cached_iovas()

2021-03-01 Thread John Garry
Function free_cpu_cached_iovas() is not only called when a CPU is hotplugged, so remove that part of the code comment. Signed-off-by: John Garry --- drivers/iommu/iova.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c index

[PATCH 1/3] iova: Add CPU hotplug handler to flush rcaches

2021-03-01 Thread John Garry
Like the intel IOMMU driver already does, flush the per-IOVA domain CPU rcache when a CPU goes offline - there's no point in keeping it. Signed-off-by: John Garry --- drivers/iommu/iova.c | 30 +- include/linux/cpuhotplug.h | 1 + include/linux/i

Re: [PATCH 1/1] Revert "iommu/iova: Retry from last rb tree node if iova search fails"

2021-03-01 Thread John Garry
On 01/03/2021 13:20, Robin Murphy wrote: FWIW, I'm 99% sure that what you really want is [1], but then you get to battle against an unknown quantity of dodgy firmware instead. Something which has not been said before is that this only happens for strict mode. I think that makes sense - once yo

Re: arm64 syzbot instances

2021-03-15 Thread John Garry
On 12/03/2021 10:52, Arnd Bergmann wrote: On Fri, Mar 12, 2021 at 11:38 AM Dmitry Vyukov wrote: On Fri, Mar 12, 2021 at 11:11 AM Arnd Bergmann wrote: It does not happen too often on syzbot so far, so let's try to do the right thing first. I've filed: https://bugs.launchpad.net/qemu/+bug/19189

Re: arm64 syzbot instances

2021-03-15 Thread John Garry
On 15/03/2021 10:01, Dmitry Vyukov wrote: On Mon, Mar 15, 2021 at 10:45 AM John Garry wrote: It does not happen too often on syzbot so far, so let's try to do the right thing first. I've filed:https://bugs.launchpad.net/qemu/+bug/1918917 with a link to this thread. To be fair, I d

Re: [PATCH] lib/logic_pio: Fix overlap check for pio registery

2021-03-15 Thread John Garry
John, On 2021/1/15 18:10, John Garry wrote: On 21/12/2020 13:04, Jiahui Cen wrote: On 21/12/2020 03:24, Jiahui Cen wrote: Hi John, On 2020/12/18 18:40, John Garry wrote: On 18/12/2020 06:23, Jiahui Cen wrote: Since the [start, end) is a half-open interval, a range with the end equal to the start

Re: [PATCH] perf metricgroup: Fix system PMU metrics

2021-01-20 Thread John Garry
On 20/01/2021 05:15, Joakim Zhang wrote: -Original Message- From: John Garry Sent: 2021年1月20日 1:33 To: Joakim Zhang ; pet...@infradead.org; mi...@redhat.com; a...@kernel.org; mark.rutl...@arm.com; alexander.shish...@linux.intel.com; jo...@redhat.com; namhy...@kernel.org; irog

Re: [PATCH] perf metricgroup: Fix system PMU metrics

2021-01-20 Thread John Garry
On 20/01/2021 12:56, Jiri Olsa wrote: that's fixing the issue for me, this was crashing: # perf stat -a -I 1000 -M L1D_Cache_Fill_BW,L2_Cache_Fill_BW could you please send it formaly, so it can be merged? I will do it today. But I want to make sure that the logic is correct, so checking i

[PATCH] perf metricgroup: Fix for metrics containing duration_time

2021-01-20 Thread John Garry
t;perf metricgroup: Fix metrics using aliases covering multiple PMUs") Reported-by: Joakim Zhang Signed-off-by: John Garry diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c index 2e60ee170abc..e6d3452031e5 100644 --- a/tools/perf/util/metricgroup.c +++ b/tools/perf/

Re: [PATCH] perf metricgroup: Fix for metrics containing duration_time

2021-01-20 Thread John Garry
On 20/01/2021 16:40, Ian Rogers wrote: On Wed, Jan 20, 2021 at 8:23 AM John Garry <mailto:john.ga...@huawei.com>> wrote: Metrics containing duration_time cause a segfault: $./perf stat -v -M L1D_Cache_Fill_BW sleep 1 Using CPUID GenuineIntel-6-3D-4 metri

Re: [RFC PATCH v3 3/3] blk-mq: Lockout tagset iterator when exiting elevator

2021-03-10 Thread John Garry
On 10/03/2021 16:00, Bart Van Assche wrote: So I can incorporate any changes and suggestions so far and send a non-RFC version - that may get more attention if none extra comes. As mentioned on the cover letter, if patch 2+3/3 are accepted, then patch 1/3 could be simplified. But I plan to lea

Re: [PATCH 1/1] Revert "iommu/iova: Retry from last rb tree node if iova search fails"

2021-03-10 Thread John Garry
On 08/03/2021 16:22, John Garry wrote: While max32_alloc_size indirectly tracks the largest*contiguous* available space, one of the ideas from which it grew was to simply keep count of the total number of free PFNs. If you're really spending significant time determining that the tr

Re: [RFC PATCH v3 2/3] blk-mq: Freeze and quiesce all queues for tagset in elevator_exit()

2021-03-11 Thread John Garry
On 11/03/2021 00:58, Ming Lei wrote: Indeed, blk_mq_queue_tag_busy_iter() already does take a reference to its queue usage counter when called, and the queue cannot be frozen to switch IO scheduler until all refs are dropped. This ensures no stale references to IO scheduler requests will be seen

Re: [PATCH 1/5] perf metricgroup: Support printing metrics for arm64

2021-03-11 Thread John Garry
On 06/03/2021 19:34, Jiri Olsa wrote: On Fri, Mar 05, 2021 at 11:06:58AM +, John Garry wrote: Hi Jirka, - struct pmu_events_map *map = perf_pmu__find_map(NULL); + struct pmu_events_map *map = find_cpumap(); so this is just for arm at the moment right? Yes - but to be more

Re: [PATCH] iommu/dma: Resurrect the "forcedac" option

2021-03-11 Thread John Garry
u driver to the iommu ops") Signed-off-by: Robin Murphy If it's worth anything: Reviewed-by: John Garry --- Documentation/admin-guide/kernel-parameters.txt | 15 --- drivers/iommu/dma-iommu.c | 13 - drivers/iommu/intel/iommu.c

Re: [PATCH 1/1] Revert "iommu/iova: Retry from last rb tree node if iova search fails"

2021-03-02 Thread John Garry
On 01/03/2021 15:48, John Garry wrote: While max32_alloc_size indirectly tracks the largest*contiguous* available space, one of the ideas from which it grew was to simply keep count of the total number of free PFNs. If you're really spending significant time determining that the tree is

Re: [RFC PATCH v3 1/3] blk-mq: Clean up references to old requests when freeing rqs

2021-03-08 Thread John Garry
On 06/03/2021 18:13, Bart Van Assche wrote: On 3/5/21 7:14 AM, John Garry wrote: @@ -2296,10 +2296,14 @@ void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, for (i = 0; i < tags->nr_tags; i++) { struct request *rq = tags->sta

Re: [RFC PATCH v3 2/3] blk-mq: Freeze and quiesce all queues for tagset in elevator_exit()

2021-03-08 Thread John Garry
On 06/03/2021 04:32, Bart Van Assche wrote: On 3/5/21 7:14 AM, John Garry wrote: diff --git a/block/blk.h b/block/blk.h index 3b53e44b967e..1a948bfd91e4 100644 --- a/block/blk.h +++ b/block/blk.h @@ -201,10 +201,29 @@ void elv_unregister_queue(struct request_queue *q); static inline void

Re: [RFC PATCH v3 3/3] blk-mq: Lockout tagset iterator when exiting elevator

2021-03-08 Thread John Garry
On 06/03/2021 04:43, Bart Van Assche wrote: On 3/5/21 7:14 AM, John Garry wrote: diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index 7ff1b20d58e7..5950fee490e8 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -358,11 +358,16 @@ void blk_mq_tagset_busy_iter(struct

Re: [RFC PATCH v3 1/3] blk-mq: Clean up references to old requests when freeing rqs

2021-03-08 Thread John Garry
On 06/03/2021 02:52, Khazhy Kumykov wrote: On Fri, Mar 5, 2021 at 7:20 AM John Garry wrote: It has been reported many times that a use-after-free can be intermittently found when iterating busy requests: - https://lore.kernel.org/linux-block/8376443a-ec1b-0cef-8244-ed584b96f...@huawei.com

Re: [PATCH] iommu/dma: Resurrect the "forcedac" option

2021-03-08 Thread John Garry
On 08/03/2021 13:08, Robin Murphy wrote: On 2021-03-05 17:41, John Garry wrote: On 05/03/2021 16:32, Robin Murphy wrote: In converting intel-iommu over to the common IOMMU DMA ops, it quietly lost the functionality of its "forcedac" option. Since this is a handy thing both for testi

Re: [PATCH 1/1] Revert "iommu/iova: Retry from last rb tree node if iova search fails"

2021-03-08 Thread John Garry
On 08/03/2021 15:15, Robin Murphy wrote: I figure that you're talking about 4e89dce72521 now. I would have liked to know which real-life problem it solved in practice. From what I remember, the problem reported was basically the one illustrated in that commit and the one I alluded to above -

Re: [PATCH 1/5] perf metricgroup: Support printing metrics for arm64

2021-03-08 Thread John Garry
On 06/03/2021 19:34, Jiri Olsa wrote: On Fri, Mar 05, 2021 at 11:06:58AM +, John Garry wrote: Hi Jirka, - struct pmu_events_map *map = perf_pmu__find_map(NULL); + struct pmu_events_map *map = find_cpumap(); so this is just for arm at the moment right? Yes - but to be more

Re: [PATCH] perf metricgroup: Fix for metrics containing duration_time

2021-01-21 Thread John Garry
> > > Thanks for this, it should be fairly easy to add a test. Could we do this? I don't mind following up with that. How about this: >8 From 38e9d5aa07588d552378d97760b6b79f19d59bbd Mon Sep 17 00:00:00 2001 From: John Garry Date: Thu,

Re: [PATCH v2 3/3] perf vendor events: Add Fujitsu A64FX V1.2 pmu event

2021-01-21 Thread John Garry
On 21/01/2021 10:54, Shunsuke Nakamura wrote: + { +"PublicDescription": "This event counts each correction to the predicted program flow that occurs because of a misprediction from, or no prediction from, the branch prediction resources and that relates to instructions that the branch pred

Re: [PATCH v2 1/3] perf vendor events: Add cache refill and DCZVA events

2021-01-21 Thread John Garry
On 21/01/2021 11:39, Shaokun Zhang wrote: Hi, 在 2021/1/21 18:54, Shunsuke Nakamura 写道: Adds L1 data cache refill prefetch, L2 data cache refill prefetch, and DCZVA instruction events. A silly question, Does Arm define these events? I checked Arm ARM document(DDI0487Fc) that these event number

Re: [PATCH] perf metricgroup: Fix system PMU metrics

2021-01-21 Thread John Garry
On 21/01/2021 20:31, Arnaldo Carvalho de Melo wrote: They are not normally broken like that. Normally we test beforehand, but these cases were missed here by me. However if you were testing them previously, then it would be expected that you had tested them again for the final patchset which was

Re: [PATCH v1] scsi: storvsc: Cap cmd_per_lun at can_queue

2021-03-09 Thread John Garry
On 08/03/2021 17:56, Melanie Plageman wrote: On Mon, Mar 08, 2021 at 02:37:40PM +, Michael Kelley wrote: From: Melanie Plageman (Microsoft) Sent: Friday, March 5, 2021 3:22 PM The scsi_device->queue_depth is set to Scsi_Host->cmd_per_lun during allocation. Cap cmd_per_lun at can_queue t

Re: [PATCH 2/2] iommu/iova: Improve restart logic

2021-03-09 Thread John Garry
On 05/03/2021 16:35, Robin Murphy wrote: Hi Robin, When restarting after searching below the cached node fails, resetting the start point to the anchor node is often overly pessimistic. If allocations are made with mixed limits - particularly in the case of the opportunistic 32-bit allocation f

Re: [PATCH v1] scsi: storvsc: Cap cmd_per_lun at can_queue

2021-03-09 Thread John Garry
On 09/03/2021 15:57, Michael Kelley wrote: From: John Garry Sent: Tuesday, March 9, 2021 2:10 AM On 08/03/2021 17:56, Melanie Plageman wrote: On Mon, Mar 08, 2021 at 02:37:40PM +, Michael Kelley wrote: From: Melanie Plageman (Microsoft) Sent: Friday, March 5, 2021 3:22 PM The

Re: [RFC PATCH v3 3/3] blk-mq: Lockout tagset iterator when exiting elevator

2021-03-09 Thread John Garry
On 08/03/2021 19:59, Bart Van Assche wrote: This changes the behavior of blk_mq_tagset_busy_iter(). What will e.g. happen if the mtip driver calls blk_mq_tagset_busy_iter(&dd->tags, mtip_abort_cmd, dd) concurrently with another blk_mq_tagset_busy_iter() call and if that causes all mtip_abort_cmd(

Re: [RFC PATCH v3 3/3] blk-mq: Lockout tagset iterator when exiting elevator

2021-03-10 Thread John Garry
On 09/03/2021 19:21, Bart Van Assche wrote: On 3/9/21 9:47 AM, John Garry wrote: This does fall over if some tags are allocated without associated request queue, which I do not know exists. Hi Bart, The only tag allocation mechanism I know of is blk_mq_get_tag(). The only blk_mq_get_tag

Re: [PATCH] perf metricgroup: Fix system PMU metrics

2021-02-05 Thread John Garry
:00 2001 From: John Garry Date: Fri, 5 Feb 2021 09:50:54 + Subject: [PATCH] perf test: Add parse-metric list test scenario diff --git a/tools/perf/tests/parse-metric.c b/tools/perf/tests/parse-metric.c index ce7be37f0d88..0626e389354c 100644 --- a/tools/perf/tests/parse-metric.c +++ b/tools/pe

Re: [PATCH v5 0/4] perf vendor events: Support PMU events for A64FX

2021-02-08 Thread John Garry
On 08/02/2021 01:53, nakamur'd a.s...@fujitsu.com wrote: Hi, John Apart from that, I think that we're a bit uncertain about patch 3/4 What are your concerns? I think it's okay for perf to read a new event code with a number at the beginning. The impact of this fix is on {name} and later rule

Re: [Linuxarm] [PATCH v1 0/2] irqchip/gic-v3-its: don't set bitmap for LPI which user didn't allocate

2021-02-08 Thread John Garry
On 08/02/2021 10:58, Luo Jiaxing wrote: When the number of online CPUs is less than 16, we found that it will fail to allocate 32 MSI interrupts (including 16 affinity interrupts) after the hisi_sas module is unloaded and then reloaded. After analysis, it is found that a bug exists when the ITS

[PATCH 4/4] perf vendor events arm64: Reference common and uarch events for A76

2021-01-25 Thread John Garry
fferent to standard are changed (to standard) for consistency. Signed-off-by: John Garry --- .../arch/arm64/arm/cortex-a76-n1/branch.json | 12 +- .../arch/arm64/arm/cortex-a76-n1/bus.json | 19 ++- .../arch/arm64/arm/cortex-a76-n1/cache.json | 118 ++ .../arm64/arm/cor

<    2   3   4   5   6   7   8   9   10   11   >