public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI"
@ 2024-07-08  8:07 Stefan Seyfried
  2024-07-08 13:50 ` Wysocki, Rafael J
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Seyfried @ 2024-07-08  8:07 UTC (permalink / raw)
  To: LKML, Rafael J. Wysocki

Hi all,

any kernels after 6.7 break my trusty old Toughbook CF-51 by rendering 
many PCI devices unusable.

I did first notice that i915 did no longer work and filed
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11437, there I 
was pointed to commit

commit 7a36b901a6eb0e9945341db71ed3c45c7721cfa9
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Mon Nov 27 20:57:43 2023 +0100

     ACPI: OSL: Use a threaded interrupt handler for SCI

which I verified with a week-long bisecting from 6.7 to 6.8 (just for 
fun :-)

Just reverting this commit top of 6.10-rc5 (sorry, this machine is not 
very powerful so I did not try the latest git master) makes everything 
work fine again.

I get these messages in dmesg when running the broken kernels:

[  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080 (acpi)
[  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
00002080 (acpi)
[  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
00002080 (acpi)
[   T46] genirq: Flags mismatch irq 9. 00000080 (ehci_hcd:usb1) vs. 
00002080 (acpi)
[  T312] genirq: Flags mismatch irq 9. 00000080 (firewire_ohci) vs. 
00002080 (acpi)
[  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
00002080 (acpi)
[  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080 (acpi)
[  T592] genirq: Flags mismatch irq 9. 00000080 (snd_intel8x0) vs. 
00002080 (acpi)
[  T581] genirq: Flags mismatch irq 9. 00000080 (i915) vs. 00002080 (acpi)
[  T874] genirq: Flags mismatch irq 9. 00000080 (enp2s1) vs. 00002080 (acpi)

These are not present with that commit reverted.

The machine has an old Pentium M (Dothan):
toughbook:~ # cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 13
model name	: Intel(R) Pentium(R) M processor 1.60GHz
stepping	: 6
microcode	: 0x18
cpu MHz		: 1600.000
cache size	: 2048 KB
fdiv_bug	: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 2
wp		: yes
flags		: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov clflush 
dts acpi mmx fxsr sse sse2 ss tm pbe bts cpuid est tm2
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds 
swapgs itlb_multihit mmio_unknown
bogomips	: 3193.05
clflush size	: 32
cache_alignment	: 32
address sizes	: 36 bits physical, 32 bits virtual
power management:

and is running an i686 pae kernel:

toughbook:~ # uname -a
Linux toughbook 6.10.0-rc5-pae-seife+ #17 PREEMPT_DYNAMIC Sat Jul  6 
07:36:41 CEST 2024 i686 i686 i386 GNU/Linux

I can provide more information on request

Best regards
-- 
Stefan Seyfried

"For a successful technology, reality must take precedence over
  public relations, for nature cannot be fooled." -- Richard Feynman

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

* Re: Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI"
  2024-07-08  8:07 Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI" Stefan Seyfried
@ 2024-07-08 13:50 ` Wysocki, Rafael J
  2024-07-10 13:13   ` Rafael J. Wysocki
  0 siblings, 1 reply; 5+ messages in thread
From: Wysocki, Rafael J @ 2024-07-08 13:50 UTC (permalink / raw)
  To: Stefan Seyfried; +Cc: LKML, linux-acpi@vger.kernel.org

Hi,

On 7/8/2024 10:07 AM, Stefan Seyfried wrote:
> Hi all,
>
> any kernels after 6.7 break my trusty old Toughbook CF-51 by rendering 
> many PCI devices unusable.
>
> I did first notice that i915 did no longer work and filed
> https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11437, there I 
> was pointed to commit
>
> commit 7a36b901a6eb0e9945341db71ed3c45c7721cfa9
> Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Date:   Mon Nov 27 20:57:43 2023 +0100
>
>     ACPI: OSL: Use a threaded interrupt handler for SCI
>
> which I verified with a week-long bisecting from 6.7 to 6.8 (just for 
> fun :-)
>
Thanks for reporting this, although it would be nice to put linux-acpi 
on the CC.


> Just reverting this commit top of 6.10-rc5 (sorry, this machine is not 
> very powerful so I did not try the latest git master) makes everything 
> work fine again.
>
> I get these messages in dmesg when running the broken kernels:
>
> [  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080 
> (acpi)
> [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
> 00002080 (acpi)
> [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
> 00002080 (acpi)
> [   T46] genirq: Flags mismatch irq 9. 00000080 (ehci_hcd:usb1) vs. 
> 00002080 (acpi)
> [  T312] genirq: Flags mismatch irq 9. 00000080 (firewire_ohci) vs. 
> 00002080 (acpi)
> [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs. 
> 00002080 (acpi)
> [  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080 
> (acpi)
> [  T592] genirq: Flags mismatch irq 9. 00000080 (snd_intel8x0) vs. 
> 00002080 (acpi)
> [  T581] genirq: Flags mismatch irq 9. 00000080 (i915) vs. 00002080 
> (acpi)
> [  T874] genirq: Flags mismatch irq 9. 00000080 (enp2s1) vs. 00002080 
> (acpi)
>
> These are not present with that commit reverted.
>
So all of the drivers above attempt to share the IRQ with the SCI and 
they don't use IRQF_ONESHOT and because they all are threaded, there is 
a flags conflict.

They all need to be made pass IRQF_COND_ONESHOT when requesting 
interrupts and it will all work again.

I'll send you a patch for this (hopefully later today), but I guess it 
will take a while until it gets absorbed.

Thanks!



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

* Re: Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI"
  2024-07-08 13:50 ` Wysocki, Rafael J
@ 2024-07-10 13:13   ` Rafael J. Wysocki
  2024-07-11  5:04     ` Stefan Seyfried
  0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2024-07-10 13:13 UTC (permalink / raw)
  To: Stefan Seyfried
  Cc: LKML, linux-acpi@vger.kernel.org, Wysocki, Rafael J,
	Thomas Gleixner

[-- Attachment #1: Type: text/plain, Size: 2563 bytes --]

On Mon, Jul 8, 2024 at 3:51 PM Wysocki, Rafael J
<rafael.j.wysocki@intel.com> wrote:
>
> Hi,
>
> On 7/8/2024 10:07 AM, Stefan Seyfried wrote:
> > Hi all,
> >
> > any kernels after 6.7 break my trusty old Toughbook CF-51 by rendering
> > many PCI devices unusable.
> >
> > I did first notice that i915 did no longer work and filed
> > https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11437, there I
> > was pointed to commit
> >
> > commit 7a36b901a6eb0e9945341db71ed3c45c7721cfa9
> > Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > Date:   Mon Nov 27 20:57:43 2023 +0100
> >
> >     ACPI: OSL: Use a threaded interrupt handler for SCI
> >
> > which I verified with a week-long bisecting from 6.7 to 6.8 (just for
> > fun :-)
> >
> Thanks for reporting this, although it would be nice to put linux-acpi
> on the CC.
>
>
> > Just reverting this commit top of 6.10-rc5 (sorry, this machine is not
> > very powerful so I did not try the latest git master) makes everything
> > work fine again.
> >
> > I get these messages in dmesg when running the broken kernels:
> >
> > [  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080
> > (acpi)
> > [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs.
> > 00002080 (acpi)
> > [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs.
> > 00002080 (acpi)
> > [   T46] genirq: Flags mismatch irq 9. 00000080 (ehci_hcd:usb1) vs.
> > 00002080 (acpi)
> > [  T312] genirq: Flags mismatch irq 9. 00000080 (firewire_ohci) vs.
> > 00002080 (acpi)
> > [  T305] genirq: Flags mismatch irq 9. 00000080 (uhci_hcd:usb1) vs.
> > 00002080 (acpi)
> > [  T308] genirq: Flags mismatch irq 9. 00000080 (yenta) vs. 00002080
> > (acpi)
> > [  T592] genirq: Flags mismatch irq 9. 00000080 (snd_intel8x0) vs.
> > 00002080 (acpi)
> > [  T581] genirq: Flags mismatch irq 9. 00000080 (i915) vs. 00002080
> > (acpi)
> > [  T874] genirq: Flags mismatch irq 9. 00000080 (enp2s1) vs. 00002080
> > (acpi)
> >
> > These are not present with that commit reverted.
> >
> So all of the drivers above attempt to share the IRQ with the SCI and
> they don't use IRQF_ONESHOT and because they all are threaded, there is
> a flags conflict.
>
> They all need to be made pass IRQF_COND_ONESHOT when requesting
> interrupts and it will all work again.
>
> I'll send you a patch for this (hopefully later today), but I guess it
> will take a while until it gets absorbed.
>
> Thanks!

So can you please check if the attached patch helps?

[-- Attachment #2: irq-flags-mismatch-fixes.patch --]
[-- Type: text/x-patch, Size: 645 bytes --]

---
 include/linux/interrupt.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-pm/include/linux/interrupt.h
===================================================================
--- linux-pm.orig/include/linux/interrupt.h
+++ linux-pm/include/linux/interrupt.h
@@ -168,7 +168,8 @@ static inline int __must_check
 request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
 	    const char *name, void *dev)
 {
-	return request_threaded_irq(irq, handler, NULL, flags, name, dev);
+	return request_threaded_irq(irq, handler, NULL,
+				    flags | IRQF_COND_ONESHOT, name, dev);
 }
 
 extern int __must_check

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

* Re: Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI"
  2024-07-10 13:13   ` Rafael J. Wysocki
@ 2024-07-11  5:04     ` Stefan Seyfried
  2024-07-11 10:21       ` Rafael J. Wysocki
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Seyfried @ 2024-07-11  5:04 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: LKML, linux-acpi@vger.kernel.org, Wysocki, Rafael J,
	Thomas Gleixner

Hi Rafael,

Am 10.07.24 um 15:13 schrieb Rafael J. Wysocki:
> On Mon, Jul 8, 2024 at 3:51 PM Wysocki, Rafael J
> <rafael.j.wysocki@intel.com> wrote:
>>
> 
> So can you please check if the attached patch helps?

Yes, everything works perfectly fine with that applied.

Thanks and best regards,

	Stefan
-- 
Stefan Seyfried

"For a successful technology, reality must take precedence over
  public relations, for nature cannot be fooled." -- Richard Feynman


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

* Re: Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI"
  2024-07-11  5:04     ` Stefan Seyfried
@ 2024-07-11 10:21       ` Rafael J. Wysocki
  0 siblings, 0 replies; 5+ messages in thread
From: Rafael J. Wysocki @ 2024-07-11 10:21 UTC (permalink / raw)
  To: Stefan Seyfried
  Cc: Rafael J. Wysocki, LKML, linux-acpi@vger.kernel.org,
	Wysocki, Rafael J, Thomas Gleixner

Hi Stefan,

On Thu, Jul 11, 2024 at 7:04 AM Stefan Seyfried
<stefan.seyfried@googlemail.com> wrote:
>
> Hi Rafael,
>
> Am 10.07.24 um 15:13 schrieb Rafael J. Wysocki:
> > On Mon, Jul 8, 2024 at 3:51 PM Wysocki, Rafael J
> > <rafael.j.wysocki@intel.com> wrote:
> >>
> >
> > So can you please check if the attached patch helps?
>
> Yes, everything works perfectly fine with that applied.
>
> Thanks and best regards,
>

Thanks for testing!

Patch submitted, let's see what Thomas has to say about it.

Cheers, Rafael

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

end of thread, other threads:[~2024-07-11 10:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-08  8:07 Regression in 6.8 from "ACPI: OSL: Use a threaded interrupt handler for SCI" Stefan Seyfried
2024-07-08 13:50 ` Wysocki, Rafael J
2024-07-10 13:13   ` Rafael J. Wysocki
2024-07-11  5:04     ` Stefan Seyfried
2024-07-11 10:21       ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox