Hi,

recently put S11X on my home desktop: Phenom II X6 1075T (3GHz)
and was wondering, why gkrellm introduces such a high cpu load:
4% (i.e. about 25% of a single 3GHz core)!

Basically the main reason is actually that kstat_read is made for every
ks_class=net header - and this is awefully slow. So I replaced it with
the lookup of ks_class=flow and reusing the appropriate *kstat_t 
(i.e. which match the link name) as long as the chain id hasn't been
changed. So the cpu load was reduced ~ by factor 40. 

Unfortunately this does not work on snv_b129 since the stats data are
always 0 for all data fields. So the question:

a) snv_b129: is there a way to "enable" generating the flow stats?
        if not, is there a way to detect, whether flow stats are simply not
        populated (i.e. fallback to ks_class=net is required)?
b) S10u9 doesn't provide any ks_class=flow stats. Is there any other
   way to retrieve rbytes and obytes fast without putting high cpu load
   on the machine?
c) on nevada I use dlpi_walk to determine available link names.
   On S10 I just use di_walk_minor(root, DDI_NT_NET, DI_CHECK_ALIAS,...)
   Is this still correct (works at least for the machines I have)?

Last but not least: I found, that kstat_read does an ioctl(...).
How can I find out, where it ends up - what the kernel actually does
here (somewhere in the onnv source I guess, but where)?

Any hints?

Regards,
jel.

BTW: I tried the same gkrellm version on my home desktop with a
slackware linux derivate - gkrellm cpu load was close to 0% ...
-- 
Otto-von-Guericke University     http://www.cs.uni-magdeburg.de/
Department of Computer Science   Geb. 29 R 027, Universitaetsplatz 2
39106 Magdeburg, Germany         Tel: +49 391 67 12768
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to