I have found that using the ipmidirect plugin is simpler and more reliable.
Have you tried that instead of the ipmi plugin?
Andy
From: 王强 [mailto:[email protected]]
Sent: Friday, August 14, 2009 5:05 AM
To: [email protected]
Subject: [SPAM] - [Openhpi-devel] hpitree can't dump full info on Dell 11G -
Email found in subject
Hi,
I'm using openhpi on Dell 11G. I only config to use the IPMI plugin. But I have
problem while dump the hpitree with hpitree.
Case description:
1. Start openhpid service.
2. Use hpitree to dump the hpi information. We only get very little information
which we can retrieve from the IPMI using IPMI utilities, a lot of sensors
information are lost.
After some research, I found the work flow on my 11G is like this, it’s
simplified just to show the flow clearly.
Flow steps
IPMI plugin for openhpi
Openhpi daemon
IPMI library
1
Ipmi_open()
Register IPMI callback such as:
1. ipmi_entity_add_presence_handler
2. ipmi_entity_add_hot_swap_handler
3. ipmi_entity_add_sensor_update_handler
4. ipmi_entity_add_control_update_handler
5. ipmi_entity_add_fru_update_handler
2
Hot_swap_handler gets called.
This callback will detect the FRUs on the resource and use
oh_evt_queue_push() to push an FRU event to this plugins’s event queue. [Event
type is FRU, status is PRESENCE]
Sensor_update_handler() gets called.
This callback will detect all the sensor RDRs on the resource and put the
RDRs (actually these RDRs are sensors on the resource) on the plugin’s cache.
3
Ipmi_event() gets called.
4
Daemon will harvest the events pushed by plugin.
If the event type is FRU and the status is PRESENCE, then it will create the
corresponding resource.
If the event type is RESOURCE, it will create the corresponding resource.
5
Ipmi_discover() get called
It search the resources cache and use oh_evt_queue_push to push the RDRs
(actually, these RDRs are the sensors) to this plugin’s event queue. [Event
type is FRU, status is PRESENCE]
6
Ipmi_event() gets called.
7
Daemon will harvest the events pushed by the plugin.
If the event type is FRU and the status is PRESENCE, it will find that the
resource has already been added by the above events created by the IPMI
callbacks and skip the adding of the RDRs. So the sensors are not added.
Because the resource (RPT) has many capabilities on it (FRU, SENSOR), both FRU
and SENSOR can activate the adding of the resource (RPT) while harvest the
corresponding event. In our case, the add of FRU is done first, then the add of
sensors are pushed to the event queue. The internal logic of the daemon of
handling the event doesn’t allow to add the sensor RDRs while the resource
(RPT) has been added (by FRU event). That’s why the sensors information are
lost.
I tried 2 way to fix it.
1. Do not allow ohoi_hot_swap_cb() to push event, then during the
ipmi_discovery() to push the event once instead.
2. I changed the src/event.c a little bit as the following:
--- event.c 2008-07-25 13:23:54.000000000 -0400
+++ event.c.new 2009-08-14 00:55:41.000000000 -0400
@@ -295,7 +295,7 @@
*hidp = e->hid;
error = oh_add_resource(rpt, &e->resource,
hidp, FREE_RPT_DATA);
- if (error == SA_OK && !exists) {
+ if (error == SA_OK) {
GSList *node = NULL;
for (node = e->rdrs; node; node = node->next) {
SaHpiRdrT *rdr = (SaHpiRdrT *)node->data;
Both can make it work. But I'm not sure which is appropriate way.
BTW, I'm also curious about the event type SAHPI_ET_RESOURCE and
SAHPI_ET_HOTSWAP, they both can result in adding the corresponding resource
while harvesting the events. Is this the design nature? Why not just allow
SAHPI_ET_RESOURCE to add the resource, and just let the SAHPI_ET_HOTSWAP tell
the daemon when to add/remove it.
Can anyone help me out of this? Thanks a lot!
singleye
2009.08.14
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Openhpi-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openhpi-devel