Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1435220 > unrolled thread

Re: i2c-i801 hangs indefinitely on IBM x3550

Started byJean Delvare <jdelvare@suse.de>
First post2016-07-01 12:00 +0200
Last post2016-07-01 15:40 +0200
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: i2c-i801 hangs indefinitely on IBM x3550 Jean Delvare <jdelvare@suse.de> - 2016-07-01 12:00 +0200
    Re: i2c-i801 hangs indefinitely on IBM x3550 Meelis Roos <mroos@linux.ee> - 2016-07-01 14:10 +0200
      Re: i2c-i801 hangs indefinitely on IBM x3550 Jean Delvare <jdelvare@suse.de> - 2016-07-01 15:10 +0200
        Re: i2c-i801 hangs indefinitely on IBM x3550 Meelis Roos <mroos@linux.ee> - 2016-07-01 15:30 +0200
          Re: i2c-i801 hangs indefinitely on IBM x3550 Jean Delvare <jdelvare@suse.de> - 2016-07-01 15:40 +0200

#1435220 — Re: i2c-i801 hangs indefinitely on IBM x3550

FromJean Delvare <jdelvare@suse.de>
Date2016-07-01 12:00 +0200
SubjectRe: i2c-i801 hangs indefinitely on IBM x3550
Message-ID<rQ3oW-528-9@gated-at.bofh.it>
Hi Meelis,

Cleaning up my mailbox, I found that I never replied to this message.
First of all I would like to apologize for this.

On Tue, 24 Sep 2013 14:46:30 +0300 (EEST), Meelis Roos wrote:
> Tried latest Debian kernel (3.10-3-amd64) and latest upstream kernel 
> (3.12-rc2) on a decommisioned IBM x3550 server. i2c-i801 is autoloaded 
> but all access to it seems to wait forever, including stopping reboot 
> from happening because modprobe is still running and blocked on this.
> 
> 00:1f.3 SMBus: Intel Corporation 631xESB/632xESB/3100 Chipset SMBus Controller (rev 09)
>         Subsystem: IBM Device 02dd
>         Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
>         Interrupt: pin B routed to IRQ 20
>         Region 4: I/O ports at 0440 [size=32]
>         Kernel driver in use: i801_smbus
> 
> 
> [    3.028771] i801_smbus 0000:00:1f.3: SMBus using PCI Interrupt
> [...]
> [  240.172009] INFO: task modprobe:267 blocked for more than 120 seconds.

Most likely SMBus interrupts do not work properly on this machine.
Since then a number of improvements have been committed to the i2c-i801
driver to detect and workaround corner cases in this area. If you still
have this machine, you may want to try to upgrade to kernel v3.19 or
later and see if it helps.

Alternatively the stand-alone driver at
  http://jdelvare.nerim.net/devel/lm-sensors/drivers/i2c-i801/
can be built for your current kernel.

-- 
Jean Delvare
SUSE L3 Support

[toc] | [next] | [standalone]


#1435282

FromMeelis Roos <mroos@linux.ee>
Date2016-07-01 14:10 +0200
Message-ID<rQ5qF-6tm-15@gated-at.bofh.it>
In reply to#1435220
> > Tried latest Debian kernel (3.10-3-amd64) and latest upstream kernel 
> > (3.12-rc2) on a decommisioned IBM x3550 server. i2c-i801 is autoloaded 
> > but all access to it seems to wait forever, including stopping reboot 
> > from happening because modprobe is still running and blocked on this.
> > 
> > 00:1f.3 SMBus: Intel Corporation 631xESB/632xESB/3100 Chipset SMBus Controller (rev 09)
> >         Subsystem: IBM Device 02dd
> >         Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
> >         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
> >         Interrupt: pin B routed to IRQ 20
> >         Region 4: I/O ports at 0440 [size=32]
> >         Kernel driver in use: i801_smbus
> > 
> > 
> > [    3.028771] i801_smbus 0000:00:1f.3: SMBus using PCI Interrupt
> > [...]
> > [  240.172009] INFO: task modprobe:267 blocked for more than 120 seconds.
> 
> Most likely SMBus interrupts do not work properly on this machine.
> Since then a number of improvements have been committed to the i2c-i801
> driver to detect and workaround corner cases in this area. If you still
> have this machine, you may want to try to upgrade to kernel v3.19 or
> later and see if it helps.

The machine is still alive and kicking with latest 4.7-rc4+. However, I 
do not remember the exact scenario  for testing.

Ran sensors, this works:

$ sensors
i5k_amb-isa-0000
Adapter: ISA adapter
Ch. 0 DIMM 0:  +38.5°C  (low  = +104.0°C, high = +124.0°C)
Ch. 0 DIMM 1:  +33.0°C  (low  = +100.0°C, high = +124.0°C)
Ch. 1 DIMM 0:  +42.5°C  (low  = +101.0°C, high = +124.0°C)
Ch. 1 DIMM 1:  +36.5°C  (low  = +99.5°C, high = +124.0°C)
Ch. 2 DIMM 0:  +58.0°C  (low  = +127.5°C, high = +127.5°C)
Ch. 3 DIMM 0:  +18.0°C  (low  = +127.5°C, high = +127.5°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +43.0°C  (high = +86.0°C, crit = +100.0°C)
Core 1:       +45.0°C  (high = +86.0°C, crit = +100.0°C)

aem1-isa-0000
Adapter: ISA adapter
power1:      188.16 W  (interval =   1.00 s)
energy1:     720.82 MJ

aem2-isa-0001
Adapter: ISA adapter
temp1:        +31.0°C  
temp2:        +20.0°C  
power1:      126.22 W  (interval =   1.00 s)
power2:      200.69 W  (interval =   1.00 s)
power3:       26.00 W  
power4:      374.00 W  
power5:      347.00 W  
power6:      265.40 W  
power7:      240.40 W  
energy1:     217.21 MJ
energy2:     720.82 MJ

ibmpex-isa-0000
Adapter: ISA adapter
temp1:         +0.0°C  
temp2:         +0.0°C  
temp3:         +0.0°C  
temp4:         +0.0°C  
power1:      131.00 W  (lowest =   7.00 W, highest = 186.90 W)
power2:      133.00 W  (lowest =   8.50 W, highest = 159.10 W)
power3:      132.60 W  (lowest =   8.70 W, highest = 155.80 W)
power4:      132.70 W  (lowest =   8.80 W, highest = 156.00 W)
power5:      127.10 W  (lowest =   8.80 W, highest = 155.00 W)
power6:      123.90 W  (lowest =   8.90 W, highest = 151.40 W)
power7:      123.30 W  (lowest =   9.00 W, highest = 148.40 W)
power8:      123.00 W  (lowest =   9.30 W, highest = 146.40 W)
power9:      208.00 W  (lowest =  67.00 W, highest = 267.00 W)
power10:     206.00 W  (lowest =  68.00 W, highest = 232.00 W)
power11:     196.00 W  (lowest =  81.00 W, highest = 227.00 W)

But the hwmon sensors seem to be prom ohter places than i2c.

mroos@x3550:/sys/bus/i2c/devices$ ls -al
total 0
drwxr-xr-x 2 root root 0 Jul  1 14:50 .
drwxr-xr-x 4 root root 0 Jul  1 14:50 ..
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-0 -> ../../../devices/pci0000:00/0000:00:1f.3/i2c-0
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-1 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-2 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-2
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-3 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-3
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-4 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-4

So no i2c client drivers.

devices/pci0000:00/0000:00:1f.3/i2c-0 is i801_smbus.

modprobe eeprom + decode-dimms shows not dimm info but here is some i2c 
device now:
lrwxrwxrwx 1 root root 0 Jul  1 14:51 1-0050 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1/1-0050
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-0 -> ../../../devices/pci0000:00/0000:00:1f.3/i2c-0
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-1 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-2 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-2
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-3 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-3
lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-4 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-4

However, this seems to be attached to ATi graphics so probably DDC.

Reboot is working fine.

SO how do I see if os working? Nothing in dmesg, reboot works so seems 
OK?


-- 
Meelis Roos (mroos@linux.ee)

[toc] | [prev] | [next] | [standalone]


#1435314

FromJean Delvare <jdelvare@suse.de>
Date2016-07-01 15:10 +0200
Message-ID<rQ6mK-72X-33@gated-at.bofh.it>
In reply to#1435282
Hi Meelis,

Thanks for the quick reply.

On ven., 2016-07-01 at 15:02 +0300, Meelis Roos wrote:
> > > Tried latest Debian kernel (3.10-3-amd64) and latest upstream kernel 
> > > (3.12-rc2) on a decommisioned IBM x3550 server. i2c-i801 is autoloaded 
> > > but all access to it seems to wait forever, including stopping reboot 
> > > from happening because modprobe is still running and blocked on this.
> > > 
> > > 00:1f.3 SMBus: Intel Corporation 631xESB/632xESB/3100 Chipset SMBus Controller (rev 09)
> > >         Subsystem: IBM Device 02dd
> > >         Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
> > >         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
> > >         Interrupt: pin B routed to IRQ 20
> > >         Region 4: I/O ports at 0440 [size=32]
> > >         Kernel driver in use: i801_smbus
> > > 
> > > 
> > > [    3.028771] i801_smbus 0000:00:1f.3: SMBus using PCI Interrupt
> > > [...]
> > > [  240.172009] INFO: task modprobe:267 blocked for more than 120 seconds.
> > 
> > Most likely SMBus interrupts do not work properly on this machine.
> > Since then a number of improvements have been committed to the i2c-i801
> > driver to detect and workaround corner cases in this area. If you still
> > have this machine, you may want to try to upgrade to kernel v3.19 or
> > later and see if it helps.
> 
> The machine is still alive and kicking with latest 4.7-rc4+. However, I 
> do not remember the exact scenario  for testing.

Well originally you reported that the machine would hang when the
i2c-i801 driver is loaded. I guess this is no longer the case?

> Ran sensors, this works:
> 
> $ sensors
> i5k_amb-isa-0000
> Adapter: ISA adapter
> Ch. 0 DIMM 0:  +38.5°C  (low  = +104.0°C, high = +124.0°C)
> Ch. 0 DIMM 1:  +33.0°C  (low  = +100.0°C, high = +124.0°C)
> Ch. 1 DIMM 0:  +42.5°C  (low  = +101.0°C, high = +124.0°C)
> Ch. 1 DIMM 1:  +36.5°C  (low  = +99.5°C, high = +124.0°C)
> Ch. 2 DIMM 0:  +58.0°C  (low  = +127.5°C, high = +127.5°C)
> Ch. 3 DIMM 0:  +18.0°C  (low  = +127.5°C, high = +127.5°C)
> 
> coretemp-isa-0000
> Adapter: ISA adapter
> Core 0:       +43.0°C  (high = +86.0°C, crit = +100.0°C)
> Core 1:       +45.0°C  (high = +86.0°C, crit = +100.0°C)
> 
> aem1-isa-0000
> Adapter: ISA adapter
> power1:      188.16 W  (interval =   1.00 s)
> energy1:     720.82 MJ
> 
> aem2-isa-0001
> Adapter: ISA adapter
> temp1:        +31.0°C  
> temp2:        +20.0°C  
> power1:      126.22 W  (interval =   1.00 s)
> power2:      200.69 W  (interval =   1.00 s)
> power3:       26.00 W  
> power4:      374.00 W  
> power5:      347.00 W  
> power6:      265.40 W  
> power7:      240.40 W  
> energy1:     217.21 MJ
> energy2:     720.82 MJ
> 
> ibmpex-isa-0000
> Adapter: ISA adapter
> temp1:         +0.0°C  
> temp2:         +0.0°C  
> temp3:         +0.0°C  
> temp4:         +0.0°C  
> power1:      131.00 W  (lowest =   7.00 W, highest = 186.90 W)
> power2:      133.00 W  (lowest =   8.50 W, highest = 159.10 W)
> power3:      132.60 W  (lowest =   8.70 W, highest = 155.80 W)
> power4:      132.70 W  (lowest =   8.80 W, highest = 156.00 W)
> power5:      127.10 W  (lowest =   8.80 W, highest = 155.00 W)
> power6:      123.90 W  (lowest =   8.90 W, highest = 151.40 W)
> power7:      123.30 W  (lowest =   9.00 W, highest = 148.40 W)
> power8:      123.00 W  (lowest =   9.30 W, highest = 146.40 W)
> power9:      208.00 W  (lowest =  67.00 W, highest = 267.00 W)
> power10:     206.00 W  (lowest =  68.00 W, highest = 232.00 W)
> power11:     196.00 W  (lowest =  81.00 W, highest = 227.00 W)
>
> But the hwmon sensors seem to be prom ohter places than i2c.

Indeed, none of these sensors is on the SMBus.

> mroos@x3550:/sys/bus/i2c/devices$ ls -al
> total 0
> drwxr-xr-x 2 root root 0 Jul  1 14:50 .
> drwxr-xr-x 4 root root 0 Jul  1 14:50 ..
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-0 -> ../../../devices/pci0000:00/0000:00:1f.3/i2c-0
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-1 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-2 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-2
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-3 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-3
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-4 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-4
> 
> So no i2c client drivers.
> 
> devices/pci0000:00/0000:00:1f.3/i2c-0 is i801_smbus.

Correct.

> modprobe eeprom + decode-dimms shows not dimm info but here is some i2c 
> device now:
> lrwxrwxrwx 1 root root 0 Jul  1 14:51 1-0050 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1/1-0050
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-0 -> ../../../devices/pci0000:00/0000:00:1f.3/i2c-0
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-1 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-1
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-2 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-2
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-3 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-3
> lrwxrwxrwx 1 root root 0 Jul  1 14:50 i2c-4 -> ../../../devices/pci0000:00/0000:00:1e.0/0000:01:01.0/i2c-4

On LGA 2011 Socket systems, the memory sockets have a dedicated SMBus
controller (there was a driver under development for it but I don't
think it ever made it upstream) so it is expected that decode-dimms
doesn't print anything.

> However, this seems to be attached to ATi graphics so probably DDC.

Indeed.

> Reboot is working fine.
> 
> SO how do I see if os working? Nothing in dmesg, reboot works so seems 
> OK?

Well, upon loading the i2c-i801 driver should say something about
interrupt use. Either:
  "SMBus using PCI interrupt"
or:
  "SMBus using polling"
and possibly other relevant messages. Can you check your dmesg for these
messages?

-- 
Jean Delvare
SUSE L3 Support

[toc] | [prev] | [next] | [standalone]


#1435329

FromMeelis Roos <mroos@linux.ee>
Date2016-07-01 15:30 +0200
Message-ID<rQ6G5-79F-11@gated-at.bofh.it>
In reply to#1435314
> > The machine is still alive and kicking with latest 4.7-rc4+. However, I 
> > do not remember the exact scenario  for testing.
> 
> Well originally you reported that the machine would hang when the
> i2c-i801 driver is loaded. I guess this is no longer the case?

Yes, that is no longer the case.

> > SO how do I see if os working? Nothing in dmesg, reboot works so seems 
> > OK?
> 
> Well, upon loading the i2c-i801 driver should say something about
> interrupt use. Either:
>   "SMBus using PCI interrupt"
> or:
>   "SMBus using polling"
> and possibly other relevant messages. Can you check your dmesg for these
> messages?

Yes, it is in dmesg:

i801_smbus 0000:00:1f.3: SMBus using PCI interrupt

And no errors.

So it seems to be working.

-- 
Meelis Roos (mroos@linux.ee)

[toc] | [prev] | [next] | [standalone]


#1435342

FromJean Delvare <jdelvare@suse.de>
Date2016-07-01 15:40 +0200
Message-ID<rQ6PM-7cN-11@gated-at.bofh.it>
In reply to#1435329
On ven., 2016-07-01 at 16:24 +0300, Meelis Roos wrote:
> > > The machine is still alive and kicking with latest 4.7-rc4+. However, I 
> > > do not remember the exact scenario  for testing.
> > 
> > Well originally you reported that the machine would hang when the
> > i2c-i801 driver is loaded. I guess this is no longer the case?
> 
> Yes, that is no longer the case.
> 
> > > SO how do I see if os working? Nothing in dmesg, reboot works so seems 
> > > OK?
> > 
> > Well, upon loading the i2c-i801 driver should say something about
> > interrupt use. Either:
> >   "SMBus using PCI interrupt"
> > or:
> >   "SMBus using polling"
> > and possibly other relevant messages. Can you check your dmesg for these
> > messages?
> 
> Yes, it is in dmesg:
> 
> i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
> 
> And no errors.
> 
> So it seems to be working.

OK. So whatever the problem was, apparently it was fixed somehow.
Good :-)

-- 
Jean Delvare
SUSE L3 Support

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web