Print this page
XXXX initialize cpu's sys and vm stats properly

*** 3119,3143 **** else zoneid = ALL_ZONES; /* * Create named kstats */ ! #define CPU_STATS_KS_CREATE(name, tsize, update_func) \ ksp = kstat_create_zone(module, instance, (name), class, \ ! KSTAT_TYPE_NAMED, (tsize) / sizeof (kstat_named_t), 0, \ ! zoneid); \ if (ksp != NULL) { \ ksp->ks_private = cp; \ ksp->ks_update = (update_func); \ kstat_install(ksp); \ ! } else \ cmn_err(CE_WARN, "cpu: unable to create %s:%d:%s kstat", \ ! module, instance, (name)); ! CPU_STATS_KS_CREATE("sys", sizeof (cpu_sys_stats_ks_data_template), cpu_sys_stats_ks_update); ! CPU_STATS_KS_CREATE("vm", sizeof (cpu_vm_stats_ks_data_template), cpu_vm_stats_ks_update); /* * Export the familiar cpu_stat_t KSTAT_TYPE_RAW kstat. */ --- 3119,3145 ---- else zoneid = ALL_ZONES; /* * Create named kstats */ ! #define CPU_STATS_KS_CREATE(name, template, update_func) \ ksp = kstat_create_zone(module, instance, (name), class, \ ! KSTAT_TYPE_NAMED, sizeof (template) / sizeof (kstat_named_t),\ ! 0, zoneid); \ if (ksp != NULL) { \ + bcopy(&template, ksp->ks_data, sizeof (template)); \ ksp->ks_private = cp; \ ksp->ks_update = (update_func); \ kstat_install(ksp); \ ! } else { \ cmn_err(CE_WARN, "cpu: unable to create %s:%d:%s kstat", \ ! module, instance, (name)); \ ! } \ ! CPU_STATS_KS_CREATE("sys", cpu_sys_stats_ks_data_template, cpu_sys_stats_ks_update); ! CPU_STATS_KS_CREATE("vm", cpu_vm_stats_ks_data_template, cpu_vm_stats_ks_update); /* * Export the familiar cpu_stat_t KSTAT_TYPE_RAW kstat. */