Do you have any recommendation on how to resolve this ? 

Venkat 

-----Original Message-----
From: Corey Minyard [mailto:[EMAIL PROTECTED] 
Sent: Friday, January 05, 2007 9:44 AM
To: Chandrasekharapuram Venkateswaran-CVC008
Cc: [EMAIL PROTECTED];
[email protected]
Subject: Re: [Openipmi-developer] openIPMI

In reviewing the information on this and experimenting with various
systems, I have come to the conclusion that presence is hopelessly
broken for fielded IPMI systems and is very confusing in the details of
how things work in the spec.

For instance, there is the "ignore sensor if entity not present" bit.  
Theoretically, you should ignore the sensor for presence if the bit is
*not* set (backwards from the logic currently in OpenIPMI).  The theory
being, if you do not ignore the sensor if the entity is not present,
then the sensor works if the entity is not present and thus is not
suitable for presence.  However, that breaks presence for a whole bunch
of things.

I discovered that the "reading/state unavailable" bit in the "Get Sensor
Reading" command has some presence meaning.  I discovered this when
looking at some weirdness (both false positives and false negatives,
there was a presence sensor that had both the present and absent bits
not set!).  If that bit is set, then the reading is invalid.  The text
for that bit hints that the entity might not be present if the bit is
set, and the sensor is probably useless for presence if the bit is set.

However, trying this causes false negatives for fans that are not
spinning, because that bit is also used for telling if the sensor cannot
be read properly.

So I'm not sure if the situation can be correctly resolved in fielded
systems without writing custom code for each chassis type :-(.

-Corey

Corey Minyard wrote:
> Thinking about this some more, I think I may have gotten the logic 
> backwards.  If the sensors is not ignored when the entity is not 
> present, then it should be ignored for presence (as, presumably, the 
> sensor is alway there, even when the entity is not present).
>
> However, that change would almost certainly break a lot of things.
>
> -Corey
>
> Corey Minyard wrote:
>> This reply seems to have been lost, so I'll resend...
>>
>> That is a difficult question.  That bit says "Ignore sensor if Entity

>> is not present or disabled".  If you should ignore it if the entity 
>> is not present, why would you use it to detect entity presence?
>>
>> I added this check as documented in the 2005-02-24 changelog entry:
>>
>>     * lib/entity.c: Ignore controls and sensors for presence if they
>>     are supposed to be ignored when the entity is not present.  I
>>     think I previously misunderstood this bit (not like it is well
>>     explained, anyway).
>>
>> IIRC, I was having trouble with false positives and after reviewing 
>> the use of this bit, it seemed best to do this.  So I'm not quite 
>> sure what to do about this.  It would be nice if we could ask the 
>> people who maintain the IPMI spec about this.
>>
>> -Corey
>>
>>
>> Chandrasekharapuram Venkateswaran-CVC008 wrote:
>>  
>>> I am currently trying to get openHPI and openIPMI installed and 
>>> working on HP DL360. I have all of the packages installed (openIPMI 
>>> 2.0.10, openHPI-2.6.3 along with hp-openIPMI driver).
>>>  
>>> I am using the libipmi plugin. The IPMI driver is up and running 
>>> along with the openhpid daemon. When I use ipmitool to retrieve the 
>>> sensors I get all the sensors (about 28 of them). When I used the 
>>> openhpi clients (such as hpisensor etc), the count is 5. After 
>>> turning on the debugging in the ipmi plugin, here is what I
noticed...
>>>  
>>> There are 28 entries of Entities ADDED (which matches with what 
>>> ipmitool returns). However, there are *ONLY* 5 entries of Entities 
>>> which are marked PRESENT.
>>> During ipmi_discover_resources, events will be sent to the 
>>> infrastructure queue for *ONLY* the entities that are marked 
>>> *PRESENT*. Hence, hpisensor or any of the hpi clients or even for 
>>> that matter the apps that use SaHPI apis return only 5 as these are 
>>> the only ones that are inserted into the HPI data model.
>>>  
>>> I started looking at the openIPMI code (mainly entity.c and
>>> sensor.c) and noticed the following:
>>>  
>>> 1) ent_detect_presence is called to detect the presence of the 
>>> entity (following the IPMI spec). If neither the  Presence Sensor 
>>> exists nor the Presence Bit sensor is set, 
>>> detect_no_presence_sensor_presence is called to try and see if the 
>>> sensors (try_presence_sensors), controls(try_presence_controls) 
>>> detect something.
>>>  
>>> 2) In try_presence_sensors, sensor_detect_send is called.
>>>  
>>> 3) sensor_detect_send checks if ignore_if_no_entity bit is set in 
>>> the sensor SDR. If this bit is SET, we do not ping the sensor. If 
>>> the whole point is to detect the presence of the entity and probing 
>>> the sensor is required in order to do that - should we still be 
>>> checking this BIT ? I removed this check and now I am able to 
>>> retrieve all the sensors even with hpisensor client. But, want to 
>>> make sure that I am not missing something here...
>>>  
>>> Thanks
>>> Venkat
>>> --------------------------------------------------------------------
>>> ----
>>>
>>>
>>>     
>
>


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to