Re: Issues with "PCI/LINK: Report degraded links via link bandwidth notification"

Bjorn Helgaas
2020-01-18T00:18:22Z

On Wed, Jan 15, 2020 at 08:44:21PM -0600, Alex G wrote:
> Hi Bjorn,
>
> I'm no longer working on this, so my memory may not be up to speed. If the
> endpoint is causing the bandwidth change, then we should get an _autonomous_
> link management interrupt instead. I don't think we report those, and that
> shouldn't spam the logs
>
> If it's not a (non-autonomous) link management interrupt, then something is
> causing the downstream port to do funny things. I don't think ASPM is
> supposed to be causing this.
>
> Do we know what's causing these swings?
>
> For now, I suggest a boot-time parameter to disable link speed reporting
> instead of a compile time option.

If we add a parameter, it would have to be that reporting is disabled
by default, and the parameter would enable it. That way the default
will not spam the logs and cause more problem reports.

I don't have time to debug this and I don't like boot parameters in
general, so somebody else will have to step up to resolve this.

At the very least, we need a Kconfig update to warn about the
possibility, and we may need to consider reverting this if we don't
have a better solution.

> On 1/15/20 4:10 PM, Bjorn Helgaas wrote:
> > I think we have a problem with link bandwidth change notifications
> > (see https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/pcie/bw_notification.c).
> >
> > Here's a recent bug report where Jan reported "_tons_" of these
> > notifications on an nvme device:
> > https://bugzilla.kernel.org/show_bug.cgi?id=206197
> >
> > There was similar discussion involving GPU drivers at
> > https://lore.kernel.org/r/20190429185611.121751-2-helgaas@kernel.org
> >
> > The current solution is the CONFIG_PCIE_BW config option, which
> > disables the messages completely. That option defaults to "off" (no
> > messages), but even so, I think it's a little problematic.
> >
> > Users are not really in a position to figure out whether it's safe to
> > enable. All they can do is experiment and see whether it works with
> > their current mix of devices and drivers.
> >
> > I don't think it's currently useful for distros because it's a
> > compile-time switch, and distros cannot predict what system configs
> > will be used, so I don't think they can enable it.
> >
> > Does anybody have proposals for making it smarter about distinguishing
> > real problems from intentional power management, or maybe interfaces
> > drivers could use to tell us when we should ignore bandwidth changes?
> >
> > Bjorn
> >