A note about CPU utilization...

For HP-UX 11.0 <= system < 11.23 the configure script will select the
"pstat" CPU utilization mechanism.  This mechanism is the familiar
HP-UX idle counter mechanism (for all incense and porpoises) and
requires calibration.  See src/netcpu_pstat.c for all the details.

For HP-UX 11.23 >= system, the configure script will select the
"pstatnew" CPU utilization mechanism.  11.23 adds cycle counts for
user, kernel and interrupt modes to the idle cycle counter.  As such,
it _should_ be possible to simply take the sum of the four and the
fractions and know how much time was spent in each mode.
HOWEVER... there is a bug in the accounting for interrupt cycles,
where interrupt cycles go missing.  SOOO, since there is an accurate
way to know what the total number of cycles should have been over the
interval, and we know (ass-u-me) that the idle cycle counter is good
(since the pstat mechanism has tested that one OK), we will take the
ratio of idle to total cycles to compute CPU util.  

We will still calculate fractions for user, kernel and interrupt, and
report them in debug (-d) output, but with a warning for interrupt
time.  See src/netcpu_pstatnew.c for all the details.

Up through HP-UX 11.23 (aka 11iV2) if you enable burst mode, and
happen to send sub-MSS requests and/or responses you _cannot_ assume
that the packet per second rate on the wire will match the transaction
per second rate reported by netperf, even if you set TCP_NODELAY with
the test-specific -D option.  The HP-UX 11.X TCP stack likely will be
generating some immediate 'standalone' ACKnowledgements which may not
be generated by other stacks.  This has been reported to the HP-UX TCP
folks, and an announcement will be made when that issue is resolved.
