Hi Corey,

I'm still having problems with the new patches due to the device ID and
the Product ID being the same on each of the nodes (still have
segfault/oops).  The dual node system is really two separate nodes that
are joined at will (via RSA setup).  Since each began life (and can
resume life at any time) as a standalone system, isn't it reasonable
that they could have the same BMC Product and Device IDs?  If not, do
you think this is something that could/should be changed/set in the BIOS
for each BMC on multi-node systems?

Alternately, would it be possible to differentiate between the two BMCs
for sysfs file naming purposes by using the value of intf->intf_num in
ipmi_bmc_register()?  I believe that's pretty similar to what's
currently done to differentiate between the ipmi.0 and ipmi.1
interfaces.  As an example, I tacked the intf_num onto the product id in
ipmi_bmc_register() (your and Jeff's patched version of the
ipmi_msghandler.c file):

        } else {
-               char name[14];
+               char name[16];
                snprintf(name, sizeof(name),
-                      "ipmi_bmc.%4.4x", bmc->id.product_id);
+                      "ipmi_bmc.%4.4x%d", bmc->id.product_id,
intf->intf_num);

and the modules loaded fine.  The file names become:  ipmi_bmc.00070.32
and ipmi_bmc.00071.32 (see debug trace below).  I suspect I may be
grossly oversimplifying the feasibility/usability/implementation of this
solution but at first glance/touch test, it appears to work so I thought
it might be good to discuss it.

Anyway, thanks again for your help.  Please let me know what you'd like
me to try next.  Also, I can probably get some time on a 4-node and/or
an 8-node system so we can really stress the solution once we've settled
on a fix.

Thanks much,

Carol Hebert  

-----

kobject ipmi_msghandler: registering. parent: <NULL>, set: module
kobject_uevent
fill_kobj_path: path = '/module/ipmi_msghandler'
kobject ipmi: registering. parent: <NULL>, set: drivers
kobject_uevent
fill_kobj_path: path = '/bus/platform/drivers/ipmi'
ipmi message handler version 39.0
kobject ipmi_devintf: registering. parent: <NULL>, set: module
kobject_uevent
fill_kobj_path: path = '/module/ipmi_devintf'
ipmi device interface
subsystem ipmi: registering
kobject ipmi: registering. parent: <NULL>, set: class
kobject ipmi_si: registering. parent: <NULL>, set: module
kobject_uevent
fill_kobj_path: path = '/module/ipmi_si'
kobject ipmi_si: registering. parent: <NULL>, set: drivers
kobject_uevent
fill_kobj_path: path = '/bus/platform/drivers/ipmi_si'
IPMI System Interface driver.
ipmi_si: Trying SMBIOS-specified KCS state machine at I/O address
0x90a8, slave address 0x20, irq 0
kobject ipmi_si.0: registering. parent: platform, set: devices
PM: Adding info for platform:ipmi_si.0
kobject_uevent
fill_kobj_path: path = '/devices/platform/ipmi_si.0'
CAH: ipmi: NEW BMC: name =  ipmi_bmc.00070;  intf_num = 0
kobject ipmi_bmc.00070.32: registering. parent: platform, set: devices
PM: Adding info for platform:ipmi_bmc.00070.32
kobject_uevent
fill_kobj_path: path = '/devices/platform/ipmi_bmc.00070.32'
ipmi: Found new BMC (man_id: 0x000002,  prod_id: 0x0007, dev_id: 0x20)
kobject ipmi0: registering. parent: ipmi, set: class_obj
kobject_uevent
fill_kobj_path: path = '/class/ipmi/ipmi0'
fill_kobj_path: path = '/devices/platform/ipmi_si.0'
 IPMI KCS interface initialized
ipmi_si: Trying SMBIOS-specified KCS state machine at I/O address 0xca8,
slave address 0x20, irq 0
kobject ipmi_si.1: registering. parent: platform, set: devices
PM: Adding info for platform:ipmi_si.1
kobject_uevent
fill_kobj_path: path = '/devices/platform/ipmi_si.1'
CAH: ipmi: NEW BMC: name =  ipmi_bmc.00071;  intf_num = 1
kobject ipmi_bmc.00071.32: registering. parent: platform, set: devices
PM: Adding info for platform:ipmi_bmc.00071.32
kobject_uevent
fill_kobj_path: path = '/devices/platform/ipmi_bmc.00071.32'
ipmi: Found new BMC (man_id: 0x000002,  prod_id: 0x0007, dev_id: 0x20)
kobject ipmi1: registering. parent: ipmi, set: class_obj
kobject_uevent
fill_kobj_path: path = '/class/ipmi/ipmi1'
fill_kobj_path: path = '/devices/platform/ipmi_si.1'
 IPMI KCS interface initialized
kobject ipmi_si: registering. parent: <NULL>, set: drivers
kobject_uevent
fill_kobj_path: path = '/bus/pci/drivers/ipmi_si'


On Tue, 2006-10-10 at 10:49 -0500, Corey Minyard wrote: 
> Sorry, I messed up the error recovery in the previous patch.  This one
> should fix it; I've simulated this and it works fine.  I've also
> included a patch from Jeff Garzik that does some more cleanup.  Jeff's
> patch must be applied first; it is named "ipmi-handle-sysfs-errors.patch".
> 
> I'm still not sure what to do about the naming problem, though.  I am
> assuming you the two devices have different GUIDs, otherwise they would
> should up as the same BMC.  I'd prefer to not use the GUID, as it is
> huge and meaningless to humans and applications.
> 
> I re-read the section in the spec again, and I really believe it is the
> intent that different BMCs on the same system have different Device
> IDs.  That way system software can identify the BMCs without having to
> worry about operating system or SMBIOS order.  So I believe you want to
> do this for reasons beyond the IPMI driver.  There is an odd habit of
> using the IPMB address of the controller as the Device ID, but I have no
> idea where that comes from.  It doesn't seem to be the intent of the
> spec, at least in the section I was reading.
> 
> -Corey
> 
> Carol Hebert wrote:
> > Hi Corey,
> >
> > Thanks very much for the patch.  :-)  I built it and ran it on my system
> > and it works a bit better than the original but it still has some
> > problems.  I'm attaching the dmesg output below (with a bit of debug
> > turned on in it).  
> >
> > With the patch, the modprobe appears to create one of the two ipmi
> > device nodes (ipmi0) expected for the dual-node system although modprobe
> > of ipmi_si appears to hang  Could you please take a look at the error
> > messages below and see if you can spot the problem?
> >
> > Thanks much again,
> >
> > Carol Hebert
> >
> >   
> 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to