[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211019065245.GA8007@linux.intel.com>
Date: Tue, 19 Oct 2021 14:52:47 +0800
From: Carel Si <beibei.si@...el.com>
To: Barry Song <21cnbao@...il.com>
Cc: "Winkler, Tomas" <tomas.winkler@...el.com>, lkp <lkp@...el.com>,
"Brandeburg, Jesse" <jesse.brandeburg@...el.com>,
"Nguyen, Anthony L" <anthony.l.nguyen@...el.com>,
Barry Song <song.bao.hua@...ilicon.com>,
LKML <linux-kernel@...r.kernel.org>,
"lkp@...ts.01.org" <lkp@...ts.01.org>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Marc Zyngier <maz@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
"Jonathan.Cameron@...wei.com" <Jonathan.Cameron@...wei.com>,
"bilbao@...edu" <bilbao@...edu>, Jonathan Corbet <corbet@....net>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"leon@...nel.org" <leon@...nel.org>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
Linuxarm <linuxarm@...wei.com>,
"luzmaximilian@...il.com" <luzmaximilian@...il.com>,
"mchehab+huawei@...nel.org" <mchehab+huawei@...nel.org>,
"schnelle@...ux.ibm.com" <schnelle@...ux.ibm.com>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
Subject: Re: [LKP] Re: [PCI/MSI] a4fc4cf388:
dmesg.genirq:Flags_mismatch_irq##(mei_me)vs.#(xhci_hcd)
Hi Barry,
On Sat, Oct 16, 2021 at 08:08:43AM +0800, Barry Song wrote:
> > issue, but it still has "Flags_mismatch_irq##(i915)vs.#(xhci_hcd)" and
>
> Can you post the backtrace of i915?
Sure, and dmesg log is attached in dmesg.xz.
[ 186.776123][ T198] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 186.776390][ T12] i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1_27.bin failed with error -2
[ 186.776407][ T12] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/skl_dmc_ver1_27.bin. Disabling runtime power management.
[ 186.776409][ T12] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 186.776697][ T198] genirq: Flags mismatch irq 16. 00000080 (i915) vs. 00000000 (xhci_hcd)
[ 186.776701][ T198] CPU: 0 PID: 198 Comm: systemd-udevd Not tainted 5.14.0-rc7-00016-gd41aee79717a #1
[ 186.776703][ T198] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.8.1 12/05/2017
[ 186.776704][ T198] Call Trace:
[ 186.776706][ T198] dump_stack_lvl+0x45/0x59
[ 186.776712][ T198] __setup_irq.cold+0x106/0x13e
[ 186.776717][ T198] ? dg1_irq_handler+0x100/0x100 [i915]
[ 186.776800][ T198] request_threaded_irq+0x10c/0x180
[ 186.776807][ T198] intel_irq_install+0x93/0x100 [i915]
[ 186.776873][ T198] i915_driver_probe+0x18f/0x440 [i915]
[ 186.776943][ T198] i915_pci_probe+0x54/0x140 [i915]
[ 186.777008][ T198] local_pci_probe+0x42/0x80
[ 186.777014][ T198] pci_device_probe+0x16b/0x200
[ 186.777017][ T198] ? sysfs_do_create_link_sd+0x69/0x100
[ 186.777025][ T198] really_probe+0xb6/0x380
[ 186.777028][ T198] __driver_probe_device+0xfe/0x180
[ 186.777032][ T198] driver_probe_device+0x1e/0xc0
[ 186.777035][ T198] __driver_attach+0x9e/0x180
[ 186.777036][ T198] ? __device_attach_driver+0x100/0x100
[ 186.777038][ T198] ? __device_attach_driver+0x100/0x100
[ 186.777040][ T198] bus_for_each_dev+0x7b/0xc0
[ 186.777046][ T198] bus_add_driver+0x150/0x200
[ 186.777051][ T198] driver_register+0x6c/0xc0
[ 186.777052][ T198] ? 0xffffffffc065d000
[ 186.777055][ T198] i915_init+0x62/0x81 [i915]
[ 186.777126][ T198] do_one_initcall+0x5b/0x340
[ 186.777129][ T198] ? do_init_module+0x23/0x280
[ 186.777132][ T198] ? kmem_cache_alloc_trace+0x533/0x640
[ 186.777135][ T198] ? lock_is_held_type+0xd5/0x140
[ 186.777142][ T198] do_init_module+0x5c/0x280
[ 186.777145][ T198] load_module+0x11b7/0x1540
[ 186.777166][ T198] ? __do_sys_finit_module+0xae/0x140
[ 186.777168][ T198] __do_sys_finit_module+0xae/0x140
[ 186.777182][ T198] do_syscall_64+0x5c/0x80
[ 186.777184][ T198] ? do_syscall_64+0x69/0x80
[ 186.777187][ T198] ? asm_exc_page_fault+0x1e/0x30
[ 186.777189][ T198] ? asm_exc_page_fault+0x8/0x30
[ 186.777191][ T198] ? lockdep_hardirqs_on+0x79/0x100
[ 186.777194][ T198] entry_SYSCALL_64_after_hwframe+0x44/0xae
>
> > "Flags_mismatch_irq##(i801_smbus)vs.#(xhci_hcd)" issue, could you help on them?
>
> I assume the below can fix i801_smbus:
We tested below patch, it can't completely fix
"Flags_mismatch_irq##(i801_smbus)vs.#(xhci_hcd)", the result is unstable, we
tested 31 times, there's 21 times that we still have
"Flags_mismatch_irq##(i801_smbus)vs.#(xhci_hcd)" issue.
Could you help on this? thanks! The dmesg log is also attached in dmesg.xz.
=========================================================================================
compiler/group/kconfig/rootfs/tbox_group/testcase/ucode:
gcc-9/pidfd/x86_64-rhel-8.3-kselftests/debian-10.4-x86_64-20200603.cgz/lkp-skl-d05/kernel-selftests/0xe2
commit:
86c19983f1 ("PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry") <<< parent
a4fc4cf388 ("PCI/MSI: remove msi_attrib.default_irq in msi_desc") <<< fbc
29368adf4c ("fixup-for-a4fc4cf388") <<< patch to fix "mei_me"
d41aee7971 ("fixup-for-29368adf4c") <<< patch to fix "i801_smbus"
86c19983f1808cea a4fc4cf388319ea957ffbdab507 29368adf4c2b598c3e13dbd9603 d41aee79717a7f4ac7f1888e488
---------------- --------------------------- --------------------------- ---------------------------
fail:runs %reproduction fail:runs %reproduction fail:runs %reproduction fail:runs
| | | | | | |
:31 68% 21:31 71% 22:31 68% 21:31 dmesg.genirq:Flags_mismatch_irq##(i801_smbus)vs.#(xhci_hcd)
:31 84% 26:31 94% 29:31 87% 27:31 dmesg.genirq:Flags_mismatch_irq##(i915)vs.#(xhci_hcd)
:31 77% 24:31 0% :31 0% :31 dmesg.genirq:Flags_mismatch_irq##(mei_me)vs.#(xhci_hcd)
[ 185.967634][ T230] i801_smbus 0000:00:1f.4: SPD Write Disable is set
[ 185.969376][ T220] ahci 0000:00:17.0: flags: 64bit ncq pm led clo only pio slum part ems deso sadm sds apst
[ 185.974251][ T230] genirq: Flags mismatch irq 16. 00000080 (i801_smbus) vs. 00000000 (xhci_hcd)
[ 185.993159][ T230] CPU: 0 PID: 230 Comm: systemd-udevd Not tainted 5.14.0-rc7-00016-gd41aee79717a #1
[ 185.993164][ T230] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.8.1 12/05/2017
Startin[ 185.993165][ T230] Call Trace:
e UTMP about Sys[ 186.020986][ T230] __setup_irq.cold+0x106/0x13e
tem Boot/Shutdow[ 186.027042][ T230] ? i801_remove+0x80/0x80 [i2c_i801]
[ 186.033616][ T230] request_threaded_irq+0x10c/0x180
[ 186.039480][ T230] ? i801_remove+0x80/0x80 [i2c_i801]
[ 186.044791][ T230] devm_request_threaded_irq+0x72/0x100
[ 186.044799][ T230] i801_probe+0x576/0x680 [i2c_i801]
Startin[ 186.055535][ T230] ? preempt_count_sub+0xa1/0x100
ind portmap serv[ 186.068795][ T230] local_pci_probe+0x42/0x80
[ 186.074591][ T230] pci_device_probe+0x16b/0x200
[ 186.080277][ T230] ? sysfs_do_create_link_sd+0x69/0x100
[ 186.086373][ T230] really_probe+0xb6/0x380
[ 186.086379][ T230] __driver_probe_device+0xfe/0x180
[ 186.086382][ T230] driver_probe_device+0x1e/0xc0
Startin[ 186.086385][ T230] __driver_attach+0x9e/0x180
rk Time Synchron[ 186.086389][ T230] ? __device_attach_driver+0x100/0x100
[ 186.086391][ T230] bus_for_each_dev+0x7b/0xc0
[ 186.086397][ T230] bus_add_driver+0x150/0x200
[ 186.086402][ T230] driver_register+0x6c/0xc0
[ 186.086404][ T230] ? 0xffffffffc0085000
[ 186.086407][ T230] i2c_i801_init+0xb3/0x1000 [i2c_i801]
[ 186.086413][ T230] ? 0xffffffffc0085000
[ 186.086415][ T230] do_one_initcall+0x5b/0x340
[ 186.086418][ T230] ? do_init_module+0x23/0x280
[ 186.086421][ T230] ? kmem_cache_alloc_trace+0x533/0x640
[ 186.086424][ T230] ? lock_is_held_type+0xd5/0x140
[ 186.086431][ T230] do_init_module+0x5c/0x280
[ 186.086435][ T230] load_module+0x11b7/0x1540
[ 186.086455][ T230] ? __do_sys_finit_module+0xae/0x140
[ 186.086457][ T230] __do_sys_finit_module+0xae/0x140
[ 186.086471][ T230] do_syscall_64+0x5c/0x80
[ 186.086474][ T230] ? do_syscall_64+0x69/0x80
[ 186.086476][ T230] ? lockdep_hardirqs_on+0x79/0x100
[ 186.086480][ T230] ? do_syscall_64+0x69/0x80
[ 186.086480][ T230] ? do_syscall_64+0x69/0x80
[ 186.086482][ T230] ? do_syscall_64+0x69/0x80
[ 186.086484][ T230] ? do_syscall_64+0x69/0x80
[ 186.086488][ T230] ? do_syscall_64+0x69/0x80
[ 186.086490][ T230] ? lockdep_hardirqs_on+0x79/0x100
[ 186.086493][ T230] ? do_syscall_64+0x69/0x80
[ 186.086495][ T230] ? asm_exc_page_fault+0x1e/0x30
[ 186.086497][ T230] ? asm_exc_page_fault+0x8/0x30
[ 186.086498][ T230] ? lockdep_hardirqs_on+0x79/0x100
[ 186.086502][ T230] entry_SYSCALL_64_after_hwframe+0x44/0xae
>
> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
> index 89ae78ef1a1c..88d96e3ca268 100644
> --- a/drivers/i2c/busses/i2c-i801.c
> +++ b/drivers/i2c/busses/i2c-i801.c
> @@ -1827,7 +1827,7 @@ static int i801_probe(struct pci_dev *dev, const
> struct pci_device_id *id)
> /* Default timeout in interrupt mode: 200 ms */
> priv->adapter.timeout = HZ / 5;
>
> - if (dev->irq == IRQ_NOTCONNECTED)
> + if (pci_irq_vector(dev, 0) == IRQ_NOTCONNECTED)
> priv->features &= ~FEATURE_IRQ;
>
> if (priv->features & FEATURE_IRQ) {
> @@ -1849,11 +1849,11 @@ static int i801_probe(struct pci_dev *dev,
> const struct pci_device_id *id)
> if (priv->features & FEATURE_IRQ) {
> init_completion(&priv->done);
>
> - err = devm_request_irq(&dev->dev, dev->irq, i801_isr,
> + err = devm_request_irq(&dev->dev, pci_irq_vector(dev,
> 0), i801_isr,
> IRQF_SHARED, DRV_NAME, priv);
> if (err) {
> dev_err(&dev->dev, "Failed to allocate irq %d: %d\n",
> - dev->irq, err);
> + pci_irq_vector(dev, 0), err);
> priv->features &= ~FEATURE_IRQ;
> }
> }
>
>
>
> > thanks!
> >
> >
> > =========================================================================================
> > compiler/group/kconfig/rootfs/tbox_group/testcase/ucode:
> > gcc-9/pidfd/x86_64-rhel-8.3-kselftests/debian-10.4-x86_64-20200603.cgz/lkp-skl-d05/kernel-selftests/0xe2
> >
> > commit:
> > 86c19983f1 ("PCI/sysfs: Don't depend on pci_dev.irq for IRQ entry") <<< parent
> > a4fc4cf388 ("PCI/MSI: remove msi_attrib.default_irq in msi_desc") <<< fbc
> > 29368adf4c ("fixup-for-a4fc4cf388")
> >
> > 86c19983f1808cea a4fc4cf388319ea957ffbdab507 29368adf4c2b598c3e13dbd9603
> > ---------------- --------------------------- ---------------------------
> > fail:runs %reproduction fail:runs %reproduction fail:runs
> > | | | | |
> > :31 68% 21:31 71% 22:31 dmesg.genirq:Flags_mismatch_irq##(i801_smbus)vs.#(xhci_hcd)
> > :31 84% 26:31 94% 29:31 dmesg.genirq:Flags_mismatch_irq##(i915)vs.#(xhci_hcd)
> > :31 77% 24:31 0% :31 dmesg.genirq:Flags_mismatch_irq##(mei_me)vs.#(xhci_hcd)
> >
> > >
> > > diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
> > > index c3393b383e59..97495931fadd 100644
> > > --- a/drivers/misc/mei/pci-me.c
> > > +++ b/drivers/misc/mei/pci-me.c
> > > @@ -216,18 +216,18 @@ static int mei_me_probe(struct pci_dev *pdev,
> > > const struct pci_device_id *ent)
> > >
> > > pci_enable_msi(pdev);
> > >
> > > - hw->irq = pdev->irq;
> > > + hw->irq = pci_irq_vector(pdev, 0);
> > >
> > > /* request and enable interrupt */
> > > irqflags = pci_dev_msi_enabled(pdev) ? IRQF_ONESHOT : IRQF_SHARED;
> > >
> > > - err = request_threaded_irq(pdev->irq,
> > > + err = request_threaded_irq(pci_irq_vector(pdev, 0),
> > > mei_me_irq_quick_handler,
> > > mei_me_irq_thread_handler,
> > > irqflags, KBUILD_MODNAME, dev);
> > > if (err) {
> > > dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n",
> > > - pdev->irq);
> > > + pci_irq_vector(pdev, 0));
> > > goto end;
> > > }
> > >
> > > @@ -278,7 +278,7 @@ static int mei_me_probe(struct pci_dev *pdev,
> > > const struct pci_device_id *ent)
> > > release_irq:
> > > mei_cancel_work(dev);
> > > mei_disable_interrupts(dev);
> > > - free_irq(pdev->irq, dev);
> > > + free_irq(pci_irq_vector(pdev, 0), dev);
> > > end:
> > > dev_err(&pdev->dev, "initialization failed.\n");
> > > return err;
> > > @@ -307,7 +307,7 @@ static void mei_me_shutdown(struct pci_dev *pdev)
> > > mei_me_unset_pm_domain(dev);
> > >
> > > mei_disable_interrupts(dev);
> > > - free_irq(pdev->irq, dev);
> > > + free_irq(pci_irq_vector(pdev, 0), dev);
> > > }
> > >
> > > /**
> > > @@ -336,7 +336,7 @@ static void mei_me_remove(struct pci_dev *pdev)
> > >
> > > mei_disable_interrupts(dev);
> > >
> > > - free_irq(pdev->irq, dev);
> > > + free_irq(pci_irq_vector(pdev, 0), dev);
> > >
> > > mei_deregister(dev);
> > > }
> > > @@ -356,7 +356,7 @@ static int mei_me_pci_suspend(struct device *device)
> > >
> > > mei_disable_interrupts(dev);
> > >
> > > - free_irq(pdev->irq, dev);
> > > + free_irq(pci_irq_vector(pdev, 0), dev);
> > > pci_disable_msi(pdev);
> > >
> > > return 0;
> > > @@ -378,14 +378,14 @@ static int mei_me_pci_resume(struct device *device)
> > > irqflags = pci_dev_msi_enabled(pdev) ? IRQF_ONESHOT : IRQF_SHARED;
> > >
> > > /* request and enable interrupt */
> > > - err = request_threaded_irq(pdev->irq,
> > > + err = request_threaded_irq(pci_irq_vector(pdev, 0),
> > > mei_me_irq_quick_handler,
> > > mei_me_irq_thread_handler,
> > > irqflags, KBUILD_MODNAME, dev);
> > >
> > > if (err) {
> > > dev_err(&pdev->dev, "request_threaded_irq failed: irq = %d.\n",
> > > - pdev->irq);
> > > + pci_irq_vector(pdev, 0));
> > > return err;
> > > }
> > >
> > >
> > > Thanks
> > > barry
>
> Thanks
> barry
Download attachment "dmesg.xz" of type "application/x-xz" (23428 bytes)
View attachment "config-5.14.0-rc7-00016-gd41aee79717a" of type "text/plain" (175449 bytes)
Powered by blists - more mailing lists