All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Williams <patrick@stwcx.xyz>
To: Matt Spinler <mspinler@linux.ibm.com>
Cc: OpenBMC Maillist <openbmc@lists.ozlabs.org>,
	Vijay Khemka <vijaykhemkalinux@gmail.com>
Subject: Re: hardcoded median function in phosphor-virtual-sensor
Date: Tue, 5 Jan 2021 14:20:19 -0600	[thread overview]
Message-ID: <X/TKA7UG5uRqlkaE@heinlein> (raw)
In-Reply-To: <ce14a5fa-eaeb-8c16-3ab2-7ef231b6c326@linux.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 2357 bytes --]

On Tue, Jan 05, 2021 at 09:56:34AM -0600, Matt Spinler wrote:
> 
> 
> On 1/5/2021 8:27 AM, Patrick Williams wrote:
> > On Mon, Jan 04, 2021 at 04:57:51PM -0600, Matt Spinler wrote:
> >> On 1/4/2021 2:54 PM, Vijay Khemka wrote:
> >>> On Mon, Jan 4, 2021 at 9:49 AM Matt Spinler <mspinler@linux.ibm.com

> > I would expect the 'exprtk' expression from your EM config to be
> > something like "median(Sensor1, Sensor2...)".  You should be able to
> > feed this into the existing virtual-sensor constructors and not have to
> > make the symbol table yourself.
> 
> Every variable used by exprtk needs to be added to the symbol table 
> first by the C++.

Isn't that what this code does already?

https://github.com/openbmc/phosphor-virtual-sensor/blob/26edaad467a44ff9b69968ac0912aa3e9e3d0a62/virtualSensor.cpp#L132

Maybe I was imprecise when I said "exprtk expression".  I really meant
"transform from EM config to the JSON config format PVS already uses and
reuse the existing code".

> Also, we need a slightly tweaked median of our 3 ambient temp sensors:
> 1) throw out values outside of minInput/maxInput
> 2) if there is an even number, because we threw out one, choose the 
> higher value, and
>      don't do the average of the 2  that I believe an actual median 
> would use.
> 3) if we threw out all 3 (very unlikely), use NaN as the sensor value.
> 
> This is easy to do in C++ using std::nth_element, and basically looks 
> the same in
> exprtk which is why I suggested just using C++ though I don't really 
> care that much either way,
> but I don't see how we could upstream this as a true median().  In fact, 
> since
> the underlying code would just use  nth_element anyway, I'm not even 
> sure it would
> be accepted and is probably why there isn't already a median().

I think median would have been accepted but, yes, this isn't a median.

Why do we ever have sensors values outside acceptable real world values?
Can you use the 'clamp' methods to keep your values inside an acceptable
real world value?

> Since I guess it could be argued this isn't a true median, maybe we 
> shouldn't call it
> a median, which is fine, but we still need it.

Yes, we need to stop trying to reuse well-understood names for something
that is not the well-understood meaning.

-- 
Patrick Williams

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2021-01-05 20:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-04 17:48 hardcoded median function in phosphor-virtual-sensor Matt Spinler
2021-01-04 20:54 ` Vijay Khemka
2021-01-04 22:57   ` Matt Spinler
2021-01-05  2:34     ` Lei Yu
2021-01-05 14:18       ` Matt Spinler
2021-01-05 14:27     ` Patrick Williams
2021-01-05 15:56       ` Matt Spinler
2021-01-05 17:18         ` Vijay Khemka
2021-01-05 17:28           ` Matt Spinler
2021-01-05 17:38         ` Ed Tanous
2021-01-05 20:23           ` Patrick Williams
2021-01-05 20:20         ` Patrick Williams [this message]
2021-01-05 17:31   ` Ed Tanous
2021-01-05 17:30 ` Ed Tanous

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=X/TKA7UG5uRqlkaE@heinlein \
    --to=patrick@stwcx.xyz \
    --cc=mspinler@linux.ibm.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=vijaykhemkalinux@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.