________________________________________
From: Bruce Ashfield <bruce.ashfi...@gmail.com>
Sent: Thursday, 3 June 2021 05:05
To: Zhang, Qiang
Cc: linux-yocto@lists.yoctoproject.org
Subject: Re: [linux-yocto] [linux-yocto v5.10] [PATCH] iommu/arm-smmu-v3: 
Ratelimit event dump

[Please note: This e-mail is from an EXTERNAL e-mail address]

In message: [linux-yocto] [linux-yocto v5.10] [PATCH] iommu/arm-smmu-v3: 
Ratelimit event dump
on 02/06/2021 qiang.zh...@windriver.com wrote:

> From: Zqiang <qiang.zh...@windriver.com>
>
> When a device or driver misbehaves, it is possible to receive events
> much faster than we can print them out. Ratelimit the printing of events
>
> During the SVA tests when the device driver didn't properly stop DMA
> before unbinding, the event queue thread would almost lock-up the server
> with a flood of event 0xa. This patch helped recover from the error.
>
> Tested-by: Aaro Koskinen <aaro.koski...@nokia.com>
> Signed-off-by: Jean-Philippe Brucker <jean-phili...@linaro.org>
> Signed-off-by: Zqiang <qiang.zh...@windriver.com>

>Is there a link / reference to where this patch came from ? Judging
>by the sign-offs, I assume it is from a mailing list ?

Here's a link to the discussion:
 
https://patchwork.kernel.org/project/linux-arm-kernel/patch/20200224182401.353359-22-jean-phili...@linaro.org/

Thanks
Qiang

>
>Also, were you targetting v5.10/standard/base ? If so, we want that
>link even more.
>
>Bruce

> ---
>  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c 
> b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> index 7067b7c11626..583db3dd1465 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> @@ -1357,16 +1357,20 @@ static irqreturn_t arm_smmu_evtq_thread(int irq, void 
> *dev)
>       struct arm_smmu_device *smmu = dev;
>       struct arm_smmu_queue *q = &smmu->evtq.q;
>       struct arm_smmu_ll_queue *llq = &q->llq;
> +     static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
> +                                     DEFAULT_RATELIMIT_BURST);
>       u64 evt[EVTQ_ENT_DWORDS];
>
>       do {
>               while (!queue_remove_raw(q, evt)) {
>                       u8 id = FIELD_GET(EVTQ_0_ID, evt[0]);
>
> -                     dev_info(smmu->dev, "event 0x%02x received:\n", id);
> -                     for (i = 0; i < ARRAY_SIZE(evt); ++i)
> -                             dev_info(smmu->dev, "\t0x%016llx\n",
> -                                      (unsigned long long)evt[i]);
> +                     if (__ratelimit(&rs)) {
> +                             dev_info(smmu->dev, "event 0x%02x received:\n", 
> id);
> +                             for (i = 0; i < ARRAY_SIZE(evt); ++i)
> +                                     dev_info(smmu->dev, "\t0x%016llx\n",
> +                                             (unsigned long long)evt[i]);
> +                     }
>
>               }
>
> --
> 2.31.1
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#9933): 
https://lists.yoctoproject.org/g/linux-yocto/message/9933
Mute This Topic: https://lists.yoctoproject.org/mt/83252521/21656
Group Owner: linux-yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to