i801_smbus 0000:00:1f.3: Bus collision!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 08, 2005 at 09:56:29AM -0400, Yani Ioannou wrote:
> On 9/8/05, Richard Hirst <rhirst at levanta.com> wrote:
> 
> > > > The board has an mBMC which is basically working in that I can read
> > > > the sensors either by 'ipmitool' or 'sensors'.
> > > >
> > > > However, round about every 10 reboots or so, I get the Bus collision
> > > > message and the system locks up solid during boot after outputting a
> > > > few messages such as
> > > >
> > > > i801_smbus 0000:00:1f.3: Bus collision!
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> > > > bmcsensors.o: Error 0xff on cmd 0xa/0x23; state = 2; probably fatal.
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> > > > i801_smbus 0000:00:1f.3: Reset failed! (01)
> 
> The bus collisions are expected - both the IPMI BMC (not bmcsensors
> directly) and the i2c modules you have loaded are competing for the
> smbus. However although I've done this (loaded both bmcsensors and i2c
> modules and got bus collisions) its never resulted in a lockup.

The lockup seems to be as a result of stack recursion; I modified
the "Reset failed!" message to report the address of a local stack
variable and after about 5 such messages the variable address starts
working down the stack until it hangs.  Trying to get a decent
stack trace now.

I currently have these modules loaded:

Module                  Size  Used by
...
bmcsensors             53861  0 
eeprom                 11353  0 
i2c_sensor              7361  1 eeprom
i2c_ipmi                8397  0 
ipmi_msghandler        41509  1 i2c_ipmi
i2c_dev                13249  0 
i2c_i801               13053  0 
...
i2c_piix4              12113  0 
i2c_core               29889  7 bmcsensors,eeprom,i2c_sensor,i2c_ipmi,i2c_dev,i2c_i801,i2c_piix4
...

The system is actually only interested in getting sensor values
by reading files in /sys/class/i2c-dev/... (I didn't write that bit).

> No, not directly. bmcsensors uses the IPMI messaging interface to send
> out queries to the IPMI BMC which then reads the sensors readings over
> the i2c/smbus (which is sometimes shared with the system).
...
> The IPMI BMC won't be using the i801 interface driver...its basically
> another computer on your motherboard :), I'd suspect the i2c drivers
> or i801 are causing the system lockup, as Mark says though you
> shouldn't be using both (but it shouldn't lockup IHMO).

So, out of the above modules, which can I do without?  eeprom, at
least; any others?

My understanding is that I'm talking over the i2c to the mBMC, and it
is then talking over (a different?) i2c to the sensors.  So the collision
is presumably effectively between the bmcsensors and the eeprom code.

You can get an idea of the h/w from a previous post, if you have
the time:

<http://lists.lm-sensors.org/pipermail/lm-sensors/2005-June/012847.html>

Thanks for the helpful response,

Richard





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux