I'm stuck and I'd like some assistance.
At this point, the client apps build, but I'm having issues with
extracting/displaying values of the types PM_TYPE_U64, PM_TYPE_FLOAT,
and PM_TYPE_DOUBLE.
As my test procedure, I have a linux box side by side with my Solaris
machine
interrogating a second linux box's PMCD. I've checked the debug output at
the -D1 level and the PDUs match each other exactly (with the exception of
the
timestamp bytes, but that's expected).
For example, I'll fetch disk.all.write (a fairly static value on the target
machine).
I get 1261 (4ED) on the linux box, but 17078775686895763456
(ED04000000000000) on
the Solaris machine.
Initially I thought I had run up against a gcc/Solaris bug in which bitwise
ands
against ull members of unions are hosed. But those areas in "interp.c" are
only in ifdefs that don't show up on Solaris (i.e. HAVE_CAST_U64_DOUBLE is
defined).
Here's the raw capture of pminfo on the Solaris and Linux machines if
someone could
take a look and suggest where I need to look...
Solaris:
ccole@tommy-toes> ./pminfo -D1 -f -h sophie disk.all.write
[9638]pmGetPDU: ERROR fd=4 len=20 from=239 moreinput? no
000: 14 7000 ef 0 2010000
[9638]pmXmitPDU: CREDS fd=4 len=20
000: 14 700c 25a6 1 1020000
[9638]pmXmitPDU: PMNS_TRAVERSE fd=4 len=36
000: 24 7010 25a6 0 e 6469736b 2e616c6c 2e777269
008: 74650000
[9638]pmGetPDU: PMNS_NAMES fd=4 len=44 from=239 moreinput? no
000: 2c 700e ef f 0 1 e 6469736b
008: 2e616c6c 2e777269 74657e7e
[9638]pmXmitPDU: PMNS_NAMES fd=4 len=44
000: 2c 700e 25a6 f 0 1 e 6469736b
008: 2e616c6c 2e777269 74657e7e
[9638]pmGetPDU: PMNS_IDS fd=4 len=24 from=239 moreinput? no
000: 18 700d ef 1 1 f000019
[9638]pmXmitPDU: PROFILE fd=4 len=28
000: 1c 7002 25a6 0 0 0 0
[9638]pmXmitPDU: FETCH fd=4 len=32
000: 20 7003 25a6 0 0 0 1 f000019
[9638]pmGetPDU: RESULT fd=4 len=56 from=239 moreinput? no
000: 38 7001 ef 3c7acdce bda5c 1 f000019 1
008: 1 ffffffff b 300000c 0 4ed
pmResult dump from 0x253e0 timestamp: 1014681038.776796 06:50:38.776
numpmid: 1
60.0.25 (disk.all.write): numval: 1 valfmt: 1 vlist[]:
value 17078775686895763456
[9638]pmXmitPDU: DESC_REQ fd=4 len=16
000: 10 7004 25a6 f000019
[9638]pmGetPDU: DESC fd=4 len=32 from=239 moreinput? no
000: 20 7005 ef f000019 3 ffffffff 1 100000
disk.all.write
value 17078775686895763456
Linux:
tigger:~# pminfo -D1 -f -h sophie disk.all.write
[3616]pmGetPDU: ERROR fd=3 len=20 from=239 moreinput? no
000: 14 7000 ef 0 102
[3616]pmXmitPDU: CREDS fd=3 len=20
000: 14 700c e20 1000000 201
[3616]pmXmitPDU: PMNS_TRAVERSE fd=3 len=36
000: 24 7010 e20 0 e000000 6b736964 6c6c612e 6972772e
008: 6574
[3616]pmGetPDU: PMNS_NAMES fd=3 len=44 from=239 moreinput? no
000: 2c 700e ef f000000 0 1000000 e000000 6b736964
008: 6c6c612e 6972772e 7e7e6574
[3616]pmXmitPDU: PMNS_NAMES fd=3 len=44
000: 2c 700e e20 f000000 0 1000000 e000000 6b736964
008: 6c6c612e 6972772e 7e7e6574
[3616]pmGetPDU: PMNS_IDS fd=3 len=24 from=239 moreinput? no
000: 18 700d ef 1000000 1000000 1900000f
[3616]pmXmitPDU: PROFILE fd=3 len=28
000: 1c 7002 e20 0 0 0 0
[3616]pmXmitPDU: FETCH fd=3 len=32
000: 20 7003 e20 0 0 0 1000000 1900000f
[3616]pmGetPDU: RESULT fd=3 len=56 from=239 moreinput? no
000: 38 7001 ef c0cd7a3c 865e0100 1000000 1900000f 1000000
008: 1000000 ffffffff b000000 c000003 0 ed040000
pmResult dump from 0x804d238 timestamp: 1014681024.089734 16:50:24.089
numpmid: 1
60.0.25 (disk.all.write): numval: 1 valfmt: 1 vlist[]:
value 1261
[3616]pmXmitPDU: DESC_REQ fd=3 len=16
000: 10 7004 e20 1900000f
[3616]pmGetPDU: DESC fd=3 len=32 from=239 moreinput? no
000: 20 7005 ef 1900000f 3000000 ffffffff 1000000 1000
disk.all.write
value 1261
(sophie is the target host, tigger is the linux test platform, and
tommy-toes is the Solaris build machine...)
Thanks,
Corey
|