openbmc.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Johnathan Mantey <johnathanx.mantey@intel.com>
To: 吳秉昌 <wh800805@gmail.com>, "Andrei Kartashev" <a.kartashev@yadro.com>
Cc: openbmc@lists.ozlabs.org
Subject: Re: Ipmitool command & entity-manager question
Date: Thu, 30 Sep 2021 08:00:10 -0700	[thread overview]
Message-ID: <5072b23d-8165-19a4-f0e8-946a31e22285@intel.com> (raw)
In-Reply-To: <2BD99E33-F582-46C5-855F-942532F79FCC@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 12640 bytes --]



On 9/30/21 3:13 AM, 吳秉昌 wrote:
> Hi Andrei
> 
> My question is that I set MB_P12V "upper critical" is 13.23, "upper non critical" is 12.6, etc .
> When I login web page, I can see the setting what I want.
> But when I use “Ipmitool sensor” command, the response is wrong. Like below
> 
> MB P12V          | 7.215      | Volts      | ok    | na        |6.386     | 6.723     | 7.429     | 7.829     | na
> 
> I am not sure am I miss something.
> 
> Thanks
> Paul
> 

ipmitool uses SDR records to calculate how to translate the 8-bit sensor 
reading into a value in range.

For intel-ipmi-oem the SDRs are generated on the fly, with most being 
Type 1. The Type 1 has a M, M(B), R, and R(B) value that is calculated 
from the values in the JSON. The code inside this section uses several 
of the entries in the JSON to generate the M and R values.

We were recently bit by this calculation, because the calculation used 
the "worst case" values of reading(min), reading(max), UC, and UNC, and 
combined them for the M and R.

Somehow the UNC and UC values were outside the reading range, and the M 
and R values were calculated in a way that made the sensor output 
incorrect as displayed by ipmitool.

You may want to investigate if the SDRs are correct. Use 'impitool sdr 
dump sdrs.bin' and find the SDR for the sensors of interest and see if 
the M and R values are sensible.

If they aren't find the code generating those values and identify how 
the values are created. Adjust your JSON as necessary.

>> Andrei Kartashev <a.kartashev@yadro.com> 於 2021年9月30日 下午6:03 寫道:
>>
>> Hello,
>>
>> What is your question exactly?
>> If it is about precision, then you should take in account that IPMI use
>> 8-bit variables to represent values and some coefficients which
>> calculated based on MinValue/MaxValue parameters of corresponding
>> Sensor interface.
>> You will never get exact values in IPMI, unless you values can fit to
>> 8-bit integer.
>>
>> On Thu, 2021-09-30 at 17:07 +0800, 吳秉昌 wrote:
>>> Hi all
>>>
>>> I add the sensor in entity-manager config like below
>>> {
>>>              "Index": 2,
>>>              "Name": "MB_VMEM",
>>>              "PowerState": "On",
>>>              "ScaleFactor": 1,
>>>              "Thresholds": [
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper critical",
>>>                      "Severity": 1,
>>>                      "Value": 1.32
>>>                  },
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper non critical",
>>>                      "Severity": 0,
>>>                      "Value": 1.26
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower non critical",
>>>                      "Severity": 0,
>>>                      "Value": 1.14
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower critical",
>>>                      "Severity": 1,
>>>                      "Value": 1.08
>>>                  }
>>>              ],
>>>              "Type": "ADC"
>>>          },
>>>          {
>>>              "Index": 3,
>>>              "Name": "MB_P12V",
>>>              "PowerState": "On",
>>>              "ScaleFactor": 0.23,
>>>              "Thresholds": [
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper critical",
>>>                      "Severity": 1,
>>>                      "Value": 13.23
>>>                  },
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper non critical",
>>>                      "Severity": 0,
>>>                      "Value": 12.6
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower non critical",
>>>                      "Severity": 0,
>>>                      "Value": 11.4
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower critical",
>>>                      "Severity": 1,
>>>                      "Value": 10.77
>>>                  }
>>>              ],
>>>              "Type": "ADC"
>>>          },
>>>          {
>>>              "Index": 4,
>>>              "Name": "MB_P5V",
>>>              "PowerState": "On",
>>>              "ScaleFactor": 0.55,
>>>              "Thresholds": [
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper critical",
>>>                      "Severity": 1,
>>>                      "Value": 5.48
>>>                  },
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper non critical",
>>>                      "Severity": 0,
>>>                      "Value": 5.24
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower non critical",
>>>                      "Severity": 0,
>>>                      "Value": 4.76
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower critical",
>>>                      "Severity": 1,
>>>                      "Value": 4.48
>>>                  }
>>>              ],
>>>              "Type": "ADC"
>>>          },
>>>          {
>>>              "Index": 5,
>>>              "Name": "MB_P5V_SB",
>>>              "PowerState": "On",
>>>              "ScaleFactor": 0.25,
>>>              "Thresholds": [
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper critical",
>>>                      "Severity": 1,
>>>                      "Value": 5.48
>>>                  },
>>>                  {
>>>                      "Direction": "greater than",
>>>                      "Name": "upper non critical",
>>>                      "Severity": 0,
>>>                      "Value": 5.24
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower non critical",
>>>                      "Severity": 0,
>>>                      "Value": 4.76
>>>                  },
>>>                  {
>>>                      "Direction": "less than",
>>>                      "Name": "lower critical",
>>>                      "Severity": 1,
>>>                      "Value": 4.48
>>>                  }
>>>              ],
>>>              "Type": "ADC"
>>>          },
>>>
>>>
>>> I use the busctrl command to see MB_P5V_SB information, it is normal.
>>> root@fws7830bmc:~# busctl introspect --no-pager
>>> xyz.openbmc_project.EntityManager
>>> /xyz/openbmc_project/inventory/system/board/FWS7830_
>>> Baseboard/MB_P5V
>>> NAME                                              TYPE      SIGNATURE
>>> RESULT/VALUE         FLAGS
>>> org.freedesktop.DBus.Introspectable               interface -
>>>    -                    -
>>> .Introspect                                       method    -
>>>    s                    -
>>> org.freedesktop.DBus.Peer                         interface -
>>>    -                    -
>>> .GetMachineId                                     method    -
>>>    s                    -
>>> .Ping                                             method    -
>>>    -                    -
>>> org.freedesktop.DBus.Properties                   interface -
>>>    -                    -
>>> .Get                                              method    ss
>>>    v                    -
>>> .GetAll                                           method    s
>>>    a{sv}                -
>>> .Set                                              method    ssv
>>>    -                    -
>>> .PropertiesChanged                                signal
>>>    sa{sv}as  -                    -
>>> xyz.openbmc_project.Configuration.ADC             interface -
>>>    -                    -
>>> .Index                                            property  t
>>>    4                    emits-change
>>> .Name                                             property  s
>>>    "MB_P5V"             emits-change
>>> .PowerState                                       property  s
>>>    "On"                 emits-change
>>> .ScaleFactor                                      property  d
>>>    0.55                 emits-change
>>> .Type                                             property  s
>>>    "ADC"                emits-change
>>> xyz.openbmc_project.Configuration.ADC.Thresholds0 interface -
>>>    -                    -
>>> .Delete                                           method    -
>>>    -                    -
>>> .Direction                                        property  s
>>>    "greater than"       emits-change writable
>>> .Name                                             property  s
>>>    "upper critical"     emits-change writable
>>> .Severity                                         property  d
>>>    1                    emits-change writable
>>> .Value                                            property  d
>>>    5.48                 emits-change writable
>>> xyz.openbmc_project.Configuration.ADC.Thresholds1 interface -
>>>    -                    -
>>> .Delete                                           method    -
>>>    -                    -
>>> .Direction                                        property  s
>>>    "greater than"       emits-change writable
>>> .Name                                             property  s
>>>    "upper non critical" emits-change writable
>>> .Severity                                         property  d
>>>    0                    emits-change writable
>>> .Value                                            property  d
>>>    5.24                 emits-change writable
>>> xyz.openbmc_project.Configuration.ADC.Thresholds2 interface -
>>>    -                    -
>>> .Delete                                           method    -
>>>    -                    -
>>> .Direction                                        property  s
>>>    "less than"          emits-change writable
>>> .Name                                             property  s
>>>    "lower non critical" emits-change writable
>>> .Severity                                         property  d
>>>    0                    emits-change writable
>>> .Value                                            property  d
>>>    4.76                 emits-change writable
>>> xyz.openbmc_project.Configuration.ADC.Thresholds3 interface -
>>>    -                    -
>>> .Delete                                           method    -
>>>    -                    -
>>> .Direction                                        property  s
>>>    "less than"          emits-change writable
>>> .Name                                             property  s
>>>    "lower critical"     emits-change writable
>>> .Severity                                         property  d
>>>    1                    emits-change writable
>>> .Value                                            property  d
>>>    4.48                 emits-change writable
>>>
>>> But I use "ipmitoo sensor” command, it return the error information
>>> below as
>>> MB P3V3          | 3.271      | Volts      | ok    | na        |
>>> 2.947     | 3.046     | 3.511     | 3.596     | na
>>> MB P5V           | 2.982      | Volts      | ok    | na        |
>>> 2.662     | 2.829     | 3.123     | 3.264     | na
>>> MB P5V SB        | 5.048      | Volts      | ok    | na        |
>>> 4.484     | 4.766     | 5.245     | 5.471     | na
>>> MB P12V          | 7.215      | Volts      | ok    | na        |
>>> 6.386     | 6.723     | 7.429     | 7.829     | na
>>>
>>> Please give me some advise.
>>>
>>> Many thanks
>>> Paul
>>>
>>
>> -- 
>> Best regards,
>> Andrei Kartashev
>>
>>
> 

-- 
Johnathan Mantey
Senior Software Engineer
*azad te**chnology partners*
Contributing to Technology Innovation since 1992
Phone: (503) 712-6764
Email: johnathanx.mantey@intel.com <mailto:johnathanx.mantey@intel.com>



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

  reply	other threads:[~2021-09-30 15:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-30  9:07 Ipmitool command & entity-manager question 吳秉昌
2021-09-30 10:03 ` Andrei Kartashev
2021-09-30 10:13   ` 吳秉昌
2021-09-30 15:00     ` Johnathan Mantey [this message]
2021-10-01  7:52       ` 吳秉昌
     [not found]         ` <99511633084704@mail.yandex-team.ru>
2021-10-13  9:05           ` 吳秉昌

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5072b23d-8165-19a4-f0e8-946a31e22285@intel.com \
    --to=johnathanx.mantey@intel.com \
    --cc=a.kartashev@yadro.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=wh800805@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).