[dtrace-discuss] Aggregation results do not make any sense
Alexander Kolbasov
akolb at eng.sun.com
Fri Dec 1 12:09:30 PST 2006
> Hi Sasha,
>
> I think the problem you're seeing is that the avg(), min(), and max()
> aggregating actions treat their argument as unsigned while the quantize()
> aggregating action treats it as signed (though max() is obviously printing
> its result as signed).
The values I am dealing with are signed. Is there any reason that avg() min()
and max() treat their arguments as unsigned? Would it be a useful RFE to have
signed version of these?
> You're obviously dealing with large values -- can you try scaling them
> down before quantizing?
I can, but it seems that here the problem is not with large values but with
negative values.
- Alex Kolbasov
__
http://blogs.sun.com/akolb
>
> Adam
>
> On Tue, Nov 28, 2006 at 01:17:13PM -0800, Alexander Kolbasov wrote:
> > I am using the following simple script on build 51 based bits (it has some
> > kernel changes for CPU caps project) on amd64 with 64-bit kernel.
> >
> > ----------------------------------------------------------------------
> > #!/usr/sbin/dtrace -s
> >
> > fbt::ts_exit:entry
> > /execname == "fork"/
> > {
> > self->trace++;
> > @exits["exits"] = count();
> > }
> >
> > /*
> > * cap_project_charge is cpu-caps specific function
> > * void cap_project_charge(kproject_t *kpj, int64_t nsecs)
> > */
> >
> > fbt::cap_project_charge:entry
> > /self->trace/
> > {
> > @f["charge count"] = count();
> > @b["charge average"] = avg(arg1);
> > @c["charge min"] = min(arg1);
> > @d["charge max"] = max(arg1);
> > @e["charge quantaized"] = quantize(arg1);
> > }
> >
> > fbt::ts_exit:return
> > /self->trace/
> > {
> > self->trace--;
> > }
> > ----------------------------------------------------------------------
> >
> > After running for a while, it produces the following strange output. Notice the
> > huge average value and also negative max value and both max and min inconsistent
> > with quantized data:
> >
> > ----------------------------------------------------------------------
> > dtrace: script './aggbug.d' matched 3 probes
> > ^C
> > exits 77252
> > charge count 74274
> > charge average 248360719409675
> > charge min 28415
> > charge max -8697972
> > charge quantaized
> > value ------------- Distribution ------------- count
> > -33554432 | 0
> > -16777216 | 98
> > -8388608 |@@@ 5052
> > -4194304 | 0
> > -2097152 | 0
> > -1048576 | 0
> > -524288 | 0
> > -262144 | 0
> > -131072 | 0
> > -65536 | 0
> > -32768 | 0
> > -16384 | 0
> > -8192 | 0
> > -4096 | 0
> > -2048 | 0
> > -1024 | 0
> > -512 | 0
> > -256 | 0
> > -128 | 0
> > -64 | 0
> > -32 | 0
> > -16 | 0
> > -8 | 0
> > -4 | 0
> > -2 | 0
> > -1 | 0
> > 0 | 0
> > 1 | 0
> > 2 | 0
> > 4 | 0
> > 8 | 0
> > 16 | 0
> > 32 | 0
> > 64 | 0
> > 128 | 0
> > 256 | 0
> > 512 | 0
> > 1024 | 0
> > 2048 | 0
> > 4096 | 0
> > 8192 | 0
> > 16384 | 1
> > 32768 | 1
> > 65536 | 0
> > 131072 | 8
> > 262144 |@ 2336
> > 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 66465
> > 1048576 | 313
> > 2097152 | 0
> >
> > ----------------------------------------------------------------------
> >
> > Any clues what is going on?
> >
> > __
> > - Alexander Kolbasov
> > _______________________________________________
> > dtrace-discuss mailing list
> > dtrace-discuss at opensolaris.org
>
> --
> Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl
>
More information about the dtrace-discuss
mailing list