[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250523160658.GA1559366@bhelgaas>
Date: Fri, 23 May 2025 11:06:58 -0500
From: Bjorn Helgaas <helgaas@...nel.org>
To: Sathyanarayanan Kuppuswamy <sathyanarayanan.kuppuswamy@...ux.intel.com>
Cc: linux-pci@...r.kernel.org, Jon Pan-Doh <pandoh@...gle.com>,
Karolina Stolarek <karolina.stolarek@...cle.com>,
Weinan Liu <wnliu@...gle.com>,
Martin Petersen <martin.petersen@...cle.com>,
Ben Fuller <ben.fuller@...cle.com>,
Drew Walton <drewwalton@...rosoft.com>,
Anil Agrawal <anilagrawal@...a.com>,
Tony Luck <tony.luck@...el.com>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Lukas Wunner <lukas@...ner.de>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>,
Sargun Dhillon <sargun@...a.com>,
"Paul E . McKenney" <paulmck@...nel.org>,
Mahesh J Salgaonkar <mahesh@...ux.ibm.com>,
Oliver O'Halloran <oohall@...il.com>,
Kai-Heng Feng <kaihengf@...dia.com>,
Keith Busch <kbusch@...nel.org>, Robert Richter <rrichter@....com>,
Terry Bowman <terry.bowman@....com>,
Shiju Jose <shiju.jose@...wei.com>,
Dave Jiang <dave.jiang@...el.com>, linux-kernel@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, Bjorn Helgaas <bhelgaas@...gle.com>
Subject: Re: [PATCH v8 18/20] PCI/AER: Ratelimit correctable and non-fatal
error logging
On Thu, May 22, 2025 at 04:56:56PM -0700, Sathyanarayanan Kuppuswamy wrote:
> On 5/22/25 4:21 PM, Bjorn Helgaas wrote:
> > From: Jon Pan-Doh <pandoh@...gle.com>
> >
> > Spammy devices can flood kernel logs with AER errors and slow/stall
> > execution. Add per-device ratelimits for AER correctable and non-fatal
> > uncorrectable errors that use the kernel defaults (10 per 5s). Logging of
> > fatal errors is not ratelimited.
> > +static int aer_ratelimit(struct pci_dev *dev, unsigned int severity)
> > +{
> > + struct ratelimit_state *ratelimit;
> > +
> > + if (severity == AER_FATAL)
> > + return 1; /* AER_FATAL not ratelimited */
> > +
> > + if (severity == AER_CORRECTABLE)
> > + ratelimit = &dev->aer_info->correctable_ratelimit;
> > + else
> > + ratelimit = &dev->aer_info->nonfatal_ratelimit;
> > +
> > + return __ratelimit(ratelimit);
> > +}
> > +
>
> Why not combine severity checks? May be something like below:
>
> switch (severity) {
> case AER_NONFATAL:
> return __ratelimit(&dev->aer_info->nonfatal_ratelimit);
> case AER_CORRECTABLE:
> return __ratelimit(&dev->aer_info->correctable_ratelimit);
> default:
> return 1; /* Don't rate-limit fatal errors */
> }
Beautiful, adopted, thank you!
Powered by blists - more mailing lists