linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bugzilla-daemon@bugzilla.kernel.org: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462]
@ 2020-07-09 19:17 Bjorn Helgaas
  2023-01-25 17:05 ` Bjorn Helgaas
  0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Helgaas @ 2020-07-09 19:17 UTC (permalink / raw)
  To: Sean V Kelley; +Cc: linux-pci, linux-kernel, Thomas Gleixner, Berni

Bisected to Debian commit d2345d1231d8, which is a backport of the
upstream commit b88bf6c3b6ff ("PCI: Add boot interrupt quirk mechanism
for Xeon chipsets").

Reporter confirmed that reverting the Debian backport from 4.19.132
fixes the problem.

----- Forwarded message from bugzilla-daemon@bugzilla.kernel.org -----

Date: Thu, 09 Jul 2020 15:01:11 +0000
From: bugzilla-daemon@bugzilla.kernel.org
To: bjorn@helgaas.com
Subject: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with
	commit d2345d1231d80ecbea5fb764eb43123440861462
Message-ID: <bug-208507-41252@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=208507

            Bug ID: 208507
           Summary: BISECTED: i2c timeout loading module ddbridge with
                    commit d2345d1231d80ecbea5fb764eb43123440861462
           Product: Drivers
           Version: 2.5
    Kernel Version: 4.19.132
          Hardware: x86-64
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: PCI
          Assignee: drivers_pci@kernel-bugs.osdl.org
          Reporter: bernhard@turmann.eu
        Regression: Yes

Created attachment 290179
  --> https://bugzilla.kernel.org/attachment.cgi?id=290179&action=edit
dmesg on 4.19.132

OS: Debian 10.4 Buster
CPU: Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
Hardware: Supermicro  Super Server
Mainboard: Supermicro X10SDV
DVB card: Digital Devices Cine S2 V7 Advanced DVB adapter

Issue:
=====
Loading kernel module ddbridge fails with i2c timeouts, see attached dmesg. The
dvb media adapter is unusable.
This happened after Linux kernel upgrade from 4.19.98-1+deb10u1 to
4.19.118-2+deb10u1.

A git bisect based on the Debian kernel repo on branch buster identified as
first bad commit: [1fb0eb795661ab9e697c3a053b35aa4dc3b81165] Update to
4.19.116.

Another git bisect based on upstream Linux kernel repo on branch v4.19.y
identified as first bad commit: [d2345d1231d80ecbea5fb764eb43123440861462] PCI:
Add boot interrupt quirk mechanism for Xeon chipsets.

Other affected Debian kernel version: 5.6.14+2~bpo10+1
I tested this version via buster-backports, because so far I was unable to
build my own kernel from 5.6.y or even 5.7.y.

Workaround:
==========
Reverting the mentioned commit d2345d1231d80ecbea5fb764eb43123440861462 on top
of 4.19.132 is fixing the problem. Reverting the same commit on 4.19.118 or
4.19.116 is also fixing the problem.

It seems, I can only add one attachment now, so I will add more attachments
later after bug is submitted.

Thanks and Regards
Berni

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

----- End forwarded message -----

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bugzilla-daemon@bugzilla.kernel.org: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462]
  2020-07-09 19:17 [bugzilla-daemon@bugzilla.kernel.org: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462] Bjorn Helgaas
@ 2023-01-25 17:05 ` Bjorn Helgaas
  2023-01-25 20:25   ` Daniel Scheller
  0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Helgaas @ 2023-01-25 17:05 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Daniel Scheller
  Cc: linux-pci, linux-kernel, Thomas Gleixner, Berni,
	Salvatore Bonaccorso, Sean V Kelley, linux-media

[+cc Salvatore, Mauro, Daniel, linux-media]

On Thu, Jul 09, 2020 at 02:17:22PM -0500, Bjorn Helgaas wrote:
> Bisected to Debian commit d2345d1231d8, which is a backport of the
> upstream commit b88bf6c3b6ff ("PCI: Add boot interrupt quirk mechanism
> for Xeon chipsets").
> 
> Reporter confirmed that reverting the Debian backport from 4.19.132
> fixes the problem.
>
> ----- Forwarded message from bugzilla-daemon@bugzilla.kernel.org -----
> 
> Date: Thu, 09 Jul 2020 15:01:11 +0000
> From: bugzilla-daemon@bugzilla.kernel.org
> To: bjorn@helgaas.com
> Subject: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with
> 	commit d2345d1231d80ecbea5fb764eb43123440861462
> Message-ID: <bug-208507-41252@https.bugzilla.kernel.org/>
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=208507
> 
>             Bug ID: 208507
>            Summary: BISECTED: i2c timeout loading module ddbridge with
>                     commit d2345d1231d80ecbea5fb764eb43123440861462
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: 4.19.132
>           Hardware: x86-64
>                 OS: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: PCI
>           Assignee: drivers_pci@kernel-bugs.osdl.org
>           Reporter: bernhard@turmann.eu
>         Regression: Yes
> 
> Created attachment 290179
>   --> https://bugzilla.kernel.org/attachment.cgi?id=290179&action=edit
> dmesg on 4.19.132
> 
> OS: Debian 10.4 Buster
> CPU: Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
> Hardware: Supermicro  Super Server
> Mainboard: Supermicro X10SDV
> DVB card: Digital Devices Cine S2 V7 Advanced DVB adapter
> 
> Issue:
> =====
> Loading kernel module ddbridge fails with i2c timeouts, see attached dmesg. The
> dvb media adapter is unusable.
> This happened after Linux kernel upgrade from 4.19.98-1+deb10u1 to
> 4.19.118-2+deb10u1.
> 
> A git bisect based on the Debian kernel repo on branch buster identified as
> first bad commit: [1fb0eb795661ab9e697c3a053b35aa4dc3b81165] Update to
> 4.19.116.
> 
> Another git bisect based on upstream Linux kernel repo on branch v4.19.y
> identified as first bad commit: [d2345d1231d80ecbea5fb764eb43123440861462] PCI:
> Add boot interrupt quirk mechanism for Xeon chipsets.
> 
> Other affected Debian kernel version: 5.6.14+2~bpo10+1
> I tested this version via buster-backports, because so far I was unable to
> build my own kernel from 5.6.y or even 5.7.y.
> 
> Workaround:
> ==========
> Reverting the mentioned commit d2345d1231d80ecbea5fb764eb43123440861462 on top
> of 4.19.132 is fixing the problem. Reverting the same commit on 4.19.118 or
> 4.19.116 is also fixing the problem.

Sorry, I dropped the ball on this.

Berni has verified that this problem still exists in v6.1.4, and has
attached current dmesg logs and lspci output.  

Sean's comment (https://bugzilla.kernel.org/show_bug.cgi?id=208507#c18)
suggests this is actually a ddbridge driver issue related to INTx
emulation or MSI support.

Berni confirmed that the i2c timeouts happen when
CONFIG_DVB_DDBRIDGE_MSIENABLE is not enabled, and that enabling MSI
via the "ddbridge.msi=1" module parameter avoids the i2c timeouts.

The Kconfig help for DVB_DDBRIDGE_MSIENABLE:

  Use PCI MSI (Message Signaled Interrupts) per default. Enabling this
  might lead to I2C errors originating from the bridge in conjunction
  with certain SATA controllers, requiring a reload of the ddbridge
  module. MSI can still be disabled by passing msi=0 as option, as
  this will just change the msi option default value.

suggests that there may be an i2c or SATA issue that could be fixed so
ddbridge MSI could be always enabled.  But I don't know about that
underlying issue.

Per MAINTAINERS, the ddbridge driver looks orphaned, so I cc'd the
media folks and Daniel, who might know something about the MSI issues,
based on adaf4df70521 ("media: ddbridge: Kconfig option to control the
MSI modparam default").

Bjorn


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bugzilla-daemon@bugzilla.kernel.org: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462]
  2023-01-25 17:05 ` Bjorn Helgaas
@ 2023-01-25 20:25   ` Daniel Scheller
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Scheller @ 2023-01-25 20:25 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Mauro Carvalho Chehab, linux-pci, linux-kernel, Thomas Gleixner,
	Berni, Salvatore Bonaccorso, Sean V Kelley, linux-media

Am Wed, 25 Jan 2023 11:05:06 -0600
schrieb Bjorn Helgaas <helgaas@kernel.org>:

> [+cc Salvatore, Mauro, Daniel, linux-media]
>
> On Thu, Jul 09, 2020 at 02:17:22PM -0500, Bjorn Helgaas wrote:
> > Bisected to Debian commit d2345d1231d8, which is a backport of the
> > upstream commit b88bf6c3b6ff ("PCI: Add boot interrupt quirk
> > mechanism for Xeon chipsets").
> >
> > Reporter confirmed that reverting the Debian backport from 4.19.132
> > fixes the problem.
> >
> > ----- Forwarded message from bugzilla-daemon@bugzilla.kernel.org
> > -----
> >
> > Date: Thu, 09 Jul 2020 15:01:11 +0000
> > From: bugzilla-daemon@bugzilla.kernel.org
> > To: bjorn@helgaas.com
> > Subject: [Bug 208507] New: BISECTED: i2c timeout loading module
> > ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462
> > Message-ID: <bug-208507-41252@https.bugzilla.kernel.org/>
> >
> > https://bugzilla.kernel.org/show_bug.cgi?id=208507
> >
> >             Bug ID: 208507
> >            Summary: BISECTED: i2c timeout loading module ddbridge
> > with commit d2345d1231d80ecbea5fb764eb43123440861462
> >            Product: Drivers
> >            Version: 2.5
> >     Kernel Version: 4.19.132
> >           Hardware: x86-64
> >                 OS: Linux
> >               Tree: Mainline
> >             Status: NEW
> >           Severity: normal
> >           Priority: P1
> >          Component: PCI
> >           Assignee: drivers_pci@kernel-bugs.osdl.org
> >           Reporter: bernhard@turmann.eu
> >         Regression: Yes
> >
> > Created attachment 290179
> >   -->
> > https://bugzilla.kernel.org/attachment.cgi?id=290179&action=edit
> > dmesg on 4.19.132
> >
> > OS: Debian 10.4 Buster
> > CPU: Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
> > Hardware: Supermicro  Super Server
> > Mainboard: Supermicro X10SDV
> > DVB card: Digital Devices Cine S2 V7 Advanced DVB adapter
> >
> > Issue:
> > =====
> > Loading kernel module ddbridge fails with i2c timeouts, see
> > attached dmesg. The dvb media adapter is unusable.
> > This happened after Linux kernel upgrade from 4.19.98-1+deb10u1 to
> > 4.19.118-2+deb10u1.
> >
> > A git bisect based on the Debian kernel repo on branch buster
> > identified as first bad commit:
> > [1fb0eb795661ab9e697c3a053b35aa4dc3b81165] Update to 4.19.116.
> >
> > Another git bisect based on upstream Linux kernel repo on branch
> > v4.19.y identified as first bad commit:
> > [d2345d1231d80ecbea5fb764eb43123440861462] PCI: Add boot interrupt
> > quirk mechanism for Xeon chipsets.
> >
> > Other affected Debian kernel version: 5.6.14+2~bpo10+1
> > I tested this version via buster-backports, because so far I was
> > unable to build my own kernel from 5.6.y or even 5.7.y.
> >
> > Workaround:
> > ==========
> > Reverting the mentioned commit
> > d2345d1231d80ecbea5fb764eb43123440861462 on top of 4.19.132 is
> > fixing the problem. Reverting the same commit on 4.19.118 or
> > 4.19.116 is also fixing the problem.
>
> Sorry, I dropped the ball on this.
>
> Berni has verified that this problem still exists in v6.1.4, and has
> attached current dmesg logs and lspci output.
>
> Sean's comment
> (https://bugzilla.kernel.org/show_bug.cgi?id=208507#c18) suggests
> this is actually a ddbridge driver issue related to INTx emulation or
> MSI support.
>
> Berni confirmed that the i2c timeouts happen when
> CONFIG_DVB_DDBRIDGE_MSIENABLE is not enabled, and that enabling MSI
> via the "ddbridge.msi=1" module parameter avoids the i2c timeouts.
>
> The Kconfig help for DVB_DDBRIDGE_MSIENABLE:
>
>   Use PCI MSI (Message Signaled Interrupts) per default. Enabling this
>   might lead to I2C errors originating from the bridge in conjunction
>   with certain SATA controllers, requiring a reload of the ddbridge
>   module. MSI can still be disabled by passing msi=0 as option, as
>   this will just change the msi option default value.
>
> suggests that there may be an i2c or SATA issue that could be fixed so
> ddbridge MSI could be always enabled.  But I don't know about that
> underlying issue.
>
> Per MAINTAINERS, the ddbridge driver looks orphaned, so I cc'd the
> media folks and Daniel, who might know something about the MSI issues,
> based on adaf4df70521 ("media: ddbridge: Kconfig option to control the
> MSI modparam default").

Bjorn/all,

I'll try to at least clarify from what I remember from "back then",
since it's over 4,5 years that I last actively worked on mainlining the
vendor driver and not being affiliated with the vendor at all.

MSI being defaulted to disabled with the possibility to try
ddbridge.msi=1 is the result of quite a bit of user feedback mainly at
vdr-portal.de, recommendations from the vendor itself in case of I2C
troubles with their cards, plus an explanation from them (been in
contact with the vendor at that time) telling me that "some"
PCIe/chipsets are buggy especially with regards to MSI and thus can
cause trouble with their cards. Also, in addition, I experienced I2C
troubles with ddbridge.msi=1 myself so I decided to make the default
"0" (with an option to toggle the default marked as "dangerous" due to
the known possible issues) as this worked the best for everyone who
opted for testing the mainlined driver code. Due to lack of real
knowledge about chipsets, PCIe, interrupts and so on, and lack of
technical docs about the cards, we could only assume we're dealing with
some sort of incompatibility between the cards and possibly certain
components, though ddbridge.msi=0 made everything play nicely with each
other.

Regarding #208507, I see that there are chipsets and/or platforms that
either soft-disable legacy IRQ signalling/routing (via the
mentioned/reverted/bisected commit), or even don't support this at all
and thus make MSI a requirement, and causing interrupts not being
serviced at all if MSI isn't available or enabled by the device.

If it is possible to query the underlying subsystems regarding
availability of legacy interrupt signalling, I guess the best option is
to perform such evaluation in the ddbridge driver during setup and
enable MSI signalling if that's the only option regardless of
ddbridge.msi=x, what seems safe on such platforms according to the
reporter (card running fine with msi=1).

I'll happily provide patches for such a change though I would very
welcome any guidance on the subsystem query topic.

Best regards,
Daniel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-01-25 20:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 19:17 [bugzilla-daemon@bugzilla.kernel.org: [Bug 208507] New: BISECTED: i2c timeout loading module ddbridge with commit d2345d1231d80ecbea5fb764eb43123440861462] Bjorn Helgaas
2023-01-25 17:05 ` Bjorn Helgaas
2023-01-25 20:25   ` Daniel Scheller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).