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