Re: ipmi_si: 90 s delay in system start with 4.14.94, but not 4.18.6

From: Corey Minyard
Date: Tue Jan 22 2019 - 15:58:40 EST

On 1/22/19 10:17 AM, Paul Menzel wrote:
Dear Linux folks,

Using Linux 4.14.94 on a HP EliteDesk 705 G4 MT desktop system, there
is a 100 s delay during boot.

[ 0.000000] Linux version 4.14.94.mx64.239 (root@xxxxxxxxxxxxxxx) (gcc version 7.3.0 (GCC)) #1 SMP Mon Jan 21 11:39:45 CET 2019
[ 3.263092] ipmi message handler version 39.2
[ 3.263520] ipmi device interface
[ 3.263893] IPMI System Interface driver.
[ 3.264325] ipmi_si 0000:06:00.3: probing via PCI
[ 3.264804] ipmi_si 0000:06:00.3: [io 0x3000-0x30ff] regsize 1 spacing 1 irq 39
[ 3.265496] ipmi_si: Adding PCI-specified kcs state machine
[ 3.266019] ipmi_si: Trying PCI-specified kcs state machine at i/o address 0x3000, slave address 0x0, irq 39
[ 4.255042] tsc: Refined TSC clocksource calibration: 3593.250 MHz
[ 4.255618] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x33cb6addeae, max_idle_ns: 440795225061 ns
[ 5.264130] clocksource: Switched to clocksource tsc
[ 104.978023] ipmi_si 0000:06:00.3: There appears to be no BMC at this location
[ 104.978658] IPMI Watchdog: driver initialized
[ 104.979095] Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot.

Testing Linux 4.18.6 and 4.20, there is no such delay.

[ 0.000000] Linux version 4.18.6.mx64.221 (root@xxxxxxxxxxxxxxx) (gcc version 7.3.0 (GCC)) #1 SMP Thu Sep 6 07:51:05 CEST 2018
[ 2.951174] ipmi message handler version 39.2
[ 2.951604] ipmi device interface
[ 2.951973] IPMI System Interface driver.
[ 2.952404] ipmi_si: Unable to find any System Interface(s)
[ 2.952909] IPMI Watchdog: driver initialized
[ 2.953339] Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot.
[ 2.954053] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0

Do you have a suggestion, what commit might have fixed this? Quickly
going through the commit history, it looks like, last year a lot of
bug fixes and clean-up was done.

That's really strange. Generally when something like this happens, it
means that there is sort of an IPMI interface there, but it's not complete.
This happens when the low-level hardware is there, but there is no
processor behind it to actually do anything.

But as you can see, in 4.18 it wasn't detecting anything, and in 4.19
it is seeing an IPMI device on the PCI bus. The discovery here is done
by the PCI code, it's out of the IPMI drivers hands until the PCI code
delivers it.

So what I'm guessing is that something changed so that the PCI
code is now recognising that there is an IPMI device there by the
PCI class codes. There really isn't a device completely there, so
it doesn't work.

I don't see anything in the IPMI code that would cause that.

If this is a problem, the device can be blacklisted in
ipmi_pci_blacklist in ipmi_si_pci.c.


If nobody knows, I might bisect to find the commit fixing this, but
will probably put more effort into updating the system to the Linux
4.19 series, where the only problem holding us back is that Nvidiaâs
driver 390.87 needs to be patched.

Kind regards,