[DTrace-devel] [PATCH 06/13] Add code for llquantize() aggregation function

Kris Van Hees kris.van.hees at oracle.com
Tue Dec 8 11:24:09 PST 2020


On Tue, Dec 08, 2020 at 11:01:12AM -0800, Eugene Loh wrote:
> I'll incorporate your feedback, but have a few questions...
> 
> 
> On 12/08/2020 10:08 AM, Kris Van Hees wrote:
> 
>     On Wed, Dec 02, 2020 at 01:54:51PM -0500, eugene.loh at oracle.com wrote:
> 
>         From: Eugene Loh <eugene.loh at oracle.com>
> 
>         diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
>         + * The bins are arranged in numerical order, starting with negative underflow,
>         + * ending with positive overflow, and with underflow exactly in the middle.
> 
>     This terminology seems a bit odd to me.  Is it what is used in documentation
>     or in the original code, or is it new?  I would consider the lowest order
>     bin to be underflow (less than the lower limit), the highest order bin to be
>     overflow (greater than the higher limit), and what you refer to as the
>     underflow bin as the zero bin (where zero is 0 +- some delta of course.
> 
> 
> First, the "negative underflow" was supposed to be "negative overflow." 
> Anyhow, documentation doesn't discuss llquantize too much;  the output is
> supposed to be sufficiently self explanatory and a description likely to be at
> least as confusing as helpful.  The idea was something along the line of how
> one might order fixed-size, floating-point numbers:  -Inf, negative numbers,
> Underflow, positive numbers, +Inf.  So, -Inf is overflow (albeit in the
> negative direction) rather than underflow.  E.g., the picture shown here:
> http://www.teach-ict.com/as_as_computing/ocr/H447/F453/3_3_4/floating_point/
> miniweb/images/overflow.gif
> 
> Does that help?  Maybe the problem was my saying "negative underflow" when I
> meant "negative overflow."

Yes, with "negative undeflow" it is more clear.  Thanks.
> 
> 
>         + */
>         +static void
>         +dt_cg_agg_llquantize_bin(dt_irlist_t *dlp, dt_regset_t *drp, int valreg,
>         +                        int32_t factor, int32_t lmag, int32_t hmag,
>         +                        int32_t steps)
>         +{
>         +       /*
>         +        * We say there are "steps" bins per logarithmic range,
>         +        * but steps/factor of them actually overlap with lower ranges.
>         +        */
>         +       int steps_factor = steps / factor;
>         +
>         +       /* the underflow bin is in the middle */
>         +       int underflow_bin = 1 + (hmag - lmag + 1) * (steps - steps_factor);
>         +
>         +       /* initial bucket_max */
>         +       uint64_t bucket_max0 = powl(factor, lmag);
>         +
>         +       /* registers */
>         +       int indreg, magreg, tmpreg, maxreg;
>         +
>         +       /* labels */
>         +       uint_t          L1 = dt_irlist_label(dlp);
>         +       uint_t          L2 = dt_irlist_label(dlp);
>         +       uint_t          L3 = dt_irlist_label(dlp);
>         +       uint_t          L4 = dt_irlist_label(dlp);
>         +       uint_t          Lloop = dt_irlist_label(dlp);
>         +       uint_t          Lbin = dt_irlist_label(dlp);
>         +       uint_t          Lshift = dt_irlist_label(dlp);
>         +       uint_t          Lend = dt_irlist_label(dlp);
>         +
>         +       TRACE_REGSET("            Impl: Begin");
> 
>     This should be some other regset trace tag because Impl: is used for the
>     implementation code for the aggregation data update.  Having it here would be
>     confusing.  Perhaps something like "Bin: Begin" (and end with "Bin: End  ")?
> 
> 
> Is that the indentation you want?  Flush with the left margin?

Ah no, sorry if my feedback was confusing...  I meant replacing the text
portion of the string Impl: Begin with Bin: Befin, so keeping the indent
that was there.

> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel




More information about the DTrace-devel mailing list