Hi Johnathan & Konstantin

Thanks for your explanation. It is very helpful to me.
I adjust the json file to fix this issue.

And I have one more question need help.
I try to enable the SEL, I add below setting 
PACKAGECONFIG:append = " log-threshold log-pulse send-to-logger

When event occurred, but SEL still empty.

event occurred log: 
Jan 01 00:04:25 fws7830bmc adcsensor[283]: Sensor MB_P3V3 high threshold 3.531 assert: value 3.588 raw data 1794
Jan 01 00:06:08 fws7830bmc adcsensor[283]: Sensor MB_P3V3 high threshold 3.531 assert: value 3.54 raw data 1770

Ipmitoo sel log:
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 0
Free Space       : 65535 bytes or more
Percent Used     : unknown
Last Add Time    : Not Available
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : 'Reserve’ 

Please give me some advice. Thanks

BR
Paul


Johnathan Mantey <johnathanx.mantey@intel.com> 於 2021年9月30日 下午11:00 寫道:



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>