diff options
author | Peter Tribble <peter.tribble@gmail.com> | 2020-01-26 12:00:11 +0000 |
---|---|---|
committer | Peter Tribble <peter.tribble@gmail.com> | 2020-02-06 18:50:37 +0000 |
commit | 8af765f5897d30449b941438e8d833f02dac74f8 (patch) | |
tree | e1fdfb8cbd359677e3fd0ba7c58f698592776774 /usr/src | |
parent | 34173ec8d0147391124bee4bbc60ac00807c0377 (diff) | |
download | illumos-gate-8af765f5897d30449b941438e8d833f02dac74f8.tar.gz |
12252 remove sunfire-specific code from kstat(1m)
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Gergő Doma <domag02@gmail.com>
Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs | 174 | ||||
-rw-r--r-- | usr/src/cmd/stat/kstat/Makefile | 3 | ||||
-rw-r--r-- | usr/src/cmd/stat/kstat/kstat.c | 168 | ||||
-rw-r--r-- | usr/src/cmd/stat/kstat/kstat.h | 20 |
4 files changed, 9 insertions, 356 deletions
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs index e93076d9ce..968f0b1e87 100644 --- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs +++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs @@ -23,6 +23,7 @@ * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014 Racktop Systems. * Copyright 2019 OmniOS Community Edition (OmniOSce) Association. + * Copyright 2020 Peter Tribble. */ /* @@ -85,9 +86,6 @@ /* Ultra-specific kstat includes */ #ifdef __sparc #include <vm/hat_sfmmu.h> /* from /usr/platform/sun4u/include */ -#include <sys/simmstat.h> /* from /usr/platform/sun4u/include */ -#include <sys/sysctrl.h> /* from /usr/platform/sun4u/include */ -#include <sys/fhc.h> /* from /usr/include */ #endif /* @@ -548,169 +546,6 @@ save_sfmmu_tsbsize_stat(HV *self, kstat_t *kp, int strip_str) #endif /* - * Definition in /usr/platform/sun4u/include/sys/simmstat.h - */ - -#ifdef __sparc -static void -save_simmstat(HV *self, kstat_t *kp, int strip_str) -{ - uchar_t *simmstatp; - SV *list; - int i; - - /* PERL_ASSERT(kp->ks_ndata == 1); */ - PERL_ASSERT(kp->ks_data_size == sizeof (uchar_t) * SIMM_COUNT); - - list = newSVpv("", 0); - for (i = 0, simmstatp = (uchar_t *)(kp->ks_data); - i < SIMM_COUNT - 1; i++, simmstatp++) { - sv_catpvf(list, "%d,", *simmstatp); - } - sv_catpvf(list, "%d", *simmstatp); - hv_store(self, "status", 6, list, 0); -} -#endif - -/* - * Used by save_temperature to make CSV lists from arrays of - * short temperature values - */ - -#ifdef __sparc -static SV * -short_array_to_SV(short *shortp, int len) -{ - SV *list; - - list = newSVpv("", 0); - for (; len > 1; len--, shortp++) { - sv_catpvf(list, "%d,", *shortp); - } - sv_catpvf(list, "%d", *shortp); - return (list); -} - -/* - * Definition in /usr/platform/sun4u/include/sys/fhc.h - */ - -static void -save_temperature(HV *self, kstat_t *kp, int strip_str) -{ - struct temp_stats *tempsp; - - /* PERL_ASSERT(kp->ks_ndata == 1); */ - PERL_ASSERT(kp->ks_data_size == sizeof (struct temp_stats)); - tempsp = (struct temp_stats *)(kp->ks_data); - - SAVE_UINT32(self, tempsp, index); - hv_store(self, "l1", 2, short_array_to_SV(tempsp->l1, L1_SZ), 0); - hv_store(self, "l2", 2, short_array_to_SV(tempsp->l2, L2_SZ), 0); - hv_store(self, "l3", 2, short_array_to_SV(tempsp->l3, L3_SZ), 0); - hv_store(self, "l4", 2, short_array_to_SV(tempsp->l4, L4_SZ), 0); - hv_store(self, "l5", 2, short_array_to_SV(tempsp->l5, L5_SZ), 0); - SAVE_INT32(self, tempsp, max); - SAVE_INT32(self, tempsp, min); - SAVE_INT32(self, tempsp, state); - SAVE_INT32(self, tempsp, temp_cnt); - SAVE_INT32(self, tempsp, shutdown_cnt); - SAVE_INT32(self, tempsp, version); - SAVE_INT32(self, tempsp, trend); - SAVE_INT32(self, tempsp, override); -} -#endif - -/* - * Not actually defined anywhere - just a short. Yuck. - */ - -#ifdef __sparc -static void -save_temp_over(HV *self, kstat_t *kp, int strip_str) -{ - short *shortp; - - /* PERL_ASSERT(kp->ks_ndata == 1); */ - PERL_ASSERT(kp->ks_data_size == sizeof (short)); - - shortp = (short *)(kp->ks_data); - hv_store(self, "override", 8, newSViv(*shortp), 0); -} -#endif - -/* - * Defined in /usr/platform/sun4u/include/sys/sysctrl.h - * (Well, sort of. Actually there's no structure, just a list of #defines - * enumerating *some* of the array indexes.) - */ - -#ifdef __sparc -static void -save_ps_shadow(HV *self, kstat_t *kp, int strip_str) -{ - uchar_t *ucharp; - - /* PERL_ASSERT(kp->ks_ndata == 1); */ - PERL_ASSERT(kp->ks_data_size == SYS_PS_COUNT); - - ucharp = (uchar_t *)(kp->ks_data); - hv_store(self, "core_0", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_1", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_2", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_3", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_4", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_5", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_6", 6, newSViv(*ucharp++), 0); - hv_store(self, "core_7", 6, newSViv(*ucharp++), 0); - hv_store(self, "pps_0", 5, newSViv(*ucharp++), 0); - hv_store(self, "clk_33", 6, newSViv(*ucharp++), 0); - hv_store(self, "clk_50", 6, newSViv(*ucharp++), 0); - hv_store(self, "v5_p", 4, newSViv(*ucharp++), 0); - hv_store(self, "v12_p", 5, newSViv(*ucharp++), 0); - hv_store(self, "v5_aux", 6, newSViv(*ucharp++), 0); - hv_store(self, "v5_p_pch", 8, newSViv(*ucharp++), 0); - hv_store(self, "v12_p_pch", 9, newSViv(*ucharp++), 0); - hv_store(self, "v3_pch", 6, newSViv(*ucharp++), 0); - hv_store(self, "v5_pch", 6, newSViv(*ucharp++), 0); - hv_store(self, "p_fan", 5, newSViv(*ucharp++), 0); -} -#endif - -/* - * Definition in /usr/platform/sun4u/include/sys/fhc.h - */ - -#ifdef __sparc -static void -save_fault_list(HV *self, kstat_t *kp, int strip_str) -{ - struct ft_list *faultp; - int i; - char name[KSTAT_STRLEN + 7]; /* room for 999999 faults */ - - /* PERL_ASSERT(kp->ks_ndata == 1); */ - /* PERL_ASSERT(kp->ks_data_size == sizeof (struct ft_list)); */ - - for (i = 1, faultp = (struct ft_list *)(kp->ks_data); - i <= 999999 && i <= kp->ks_data_size / sizeof (struct ft_list); - i++, faultp++) { - (void) snprintf(name, sizeof (name), "unit_%d", i); - hv_store(self, name, strlen(name), newSViv(faultp->unit), 0); - (void) snprintf(name, sizeof (name), "type_%d", i); - hv_store(self, name, strlen(name), newSViv(faultp->type), 0); - (void) snprintf(name, sizeof (name), "fclass_%d", i); - hv_store(self, name, strlen(name), newSViv(faultp->fclass), 0); - (void) snprintf(name, sizeof (name), "create_time_%d", i); - hv_store(self, name, strlen(name), - NEW_UV(faultp->create_time), 0); - (void) snprintf(name, sizeof (name), "msg_%d", i); - hv_store(self, name, strlen(name), newSVpv(faultp->msg, 0), 0); - } -} -#endif - -/* * We need to be able to find the function corresponding to a particular raw * kstat. To do this we ignore the instance and glue the module and name * together to form a composite key. We can then use the data in the kstat @@ -721,7 +556,7 @@ save_fault_list(HV *self, kstat_t *kp, int strip_str) * Note that some kstats include the instance number as part of the module * and/or name. This could be construed as a bug. However, to work around this * we omit any digits from the module and name as we build the table in - * build_raw_kstat_loopup(), and we remove any digits from the module and name + * build_raw_kstat_lookup(), and we remove any digits from the module and name * when we look up the functions in lookup_raw_kstat_fn() */ @@ -747,11 +582,6 @@ build_raw_kstat_lookup() "unix:sfmmu_global_stat"); SAVE_FNP(raw_kstat_lookup, save_sfmmu_tsbsize_stat, "unix:sfmmu_tsbsize_stat"); - SAVE_FNP(raw_kstat_lookup, save_simmstat, "unix:simm-status"); - SAVE_FNP(raw_kstat_lookup, save_temperature, "unix:temperature"); - SAVE_FNP(raw_kstat_lookup, save_temp_over, "unix:temperature override"); - SAVE_FNP(raw_kstat_lookup, save_ps_shadow, "unix:ps_shadow"); - SAVE_FNP(raw_kstat_lookup, save_fault_list, "unix:fault_list"); #endif } diff --git a/usr/src/cmd/stat/kstat/Makefile b/usr/src/cmd/stat/kstat/Makefile index 668c8ffec8..c315bf7c2c 100644 --- a/usr/src/cmd/stat/kstat/Makefile +++ b/usr/src/cmd/stat/kstat/Makefile @@ -22,6 +22,8 @@ # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # +# Copyright 2020 Peter tribble. +# PROG = kstat OBJS = kstat.o @@ -37,7 +39,6 @@ CERRWARN += -_gcc=-Wno-switch CERRWARN += -_gcc=-Wno-parentheses CPPFLAGS_sparc += -I$(SRC)/uts/sfmmu -CPPFLAGS_sparc += -I$(SRC)/uts/sun4u/sunfire CPPFLAGS += $(CPPFLAGS_$(MACH)) FILEMODE= 0555 diff --git a/usr/src/cmd/stat/kstat/kstat.c b/usr/src/cmd/stat/kstat/kstat.c index 236437face..2276b9762a 100644 --- a/usr/src/cmd/stat/kstat/kstat.c +++ b/usr/src/cmd/stat/kstat/kstat.c @@ -24,6 +24,7 @@ * Copyright (c) 2013 David Hoeppner. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. * Copyright 2016 Joyent, Inc. + * Copyright 2020 Peter Tribble. */ /* @@ -518,7 +519,7 @@ static kstat_raw_reader_t lookup_raw_kstat_fn(char *module, char *name) { char key[KSTAT_STRLEN * 2]; - register char *f, *t; + register char *f, *t; int n = 0; for (f = module, t = key; *f != '\0'; f++, t++) { @@ -1324,171 +1325,6 @@ save_sfmmu_tsbsize_stat(kstat_t *kp, ks_instance_t *ksi) } #endif -#ifdef __sparc -static void -save_simmstat(kstat_t *kp, ks_instance_t *ksi) -{ - uchar_t *simmstat; - char *simm_buf; - char *list = NULL; - int i; - - assert(kp->ks_data_size == sizeof (uchar_t) * SIMM_COUNT); - - for (i = 0, simmstat = (uchar_t *)(kp->ks_data); i < SIMM_COUNT - 1; - i++, simmstat++) { - if (list == NULL) { - (void) asprintf(&simm_buf, "%d,", *simmstat); - } else { - (void) asprintf(&simm_buf, "%s%d,", list, *simmstat); - free(list); - } - list = simm_buf; - } - - (void) asprintf(&simm_buf, "%s%d", list, *simmstat); - SAVE_STRING_X(ksi, "status", simm_buf); - free(list); - free(simm_buf); -} -#endif - -#ifdef __sparc -/* - * Helper function for save_temperature(). - */ -static char * -short_array_to_string(short *shortp, int len) -{ - char *list = NULL; - char *list_buf; - - for (; len > 1; len--, shortp++) { - if (list == NULL) { - (void) asprintf(&list_buf, "%hd,", *shortp); - } else { - (void) asprintf(&list_buf, "%s%hd,", list, *shortp); - free(list); - } - list = list_buf; - } - - (void) asprintf(&list_buf, "%s%hd", list, *shortp); - free(list); - return (list_buf); -} - -static void -save_temperature(kstat_t *kp, ks_instance_t *ksi) -{ - struct temp_stats *temps = (struct temp_stats *)(kp->ks_data); - char *buf; - - assert(kp->ks_data_size == sizeof (struct temp_stats)); - - SAVE_UINT32(ksi, temps, index); - - buf = short_array_to_string(temps->l1, L1_SZ); - SAVE_STRING_X(ksi, "l1", buf); - free(buf); - - buf = short_array_to_string(temps->l2, L2_SZ); - SAVE_STRING_X(ksi, "l2", buf); - free(buf); - - buf = short_array_to_string(temps->l3, L3_SZ); - SAVE_STRING_X(ksi, "l3", buf); - free(buf); - - buf = short_array_to_string(temps->l4, L4_SZ); - SAVE_STRING_X(ksi, "l4", buf); - free(buf); - - buf = short_array_to_string(temps->l5, L5_SZ); - SAVE_STRING_X(ksi, "l5", buf); - free(buf); - - SAVE_INT32(ksi, temps, max); - SAVE_INT32(ksi, temps, min); - SAVE_INT32(ksi, temps, state); - SAVE_INT32(ksi, temps, temp_cnt); - SAVE_INT32(ksi, temps, shutdown_cnt); - SAVE_INT32(ksi, temps, version); - SAVE_INT32(ksi, temps, trend); - SAVE_INT32(ksi, temps, override); -} -#endif - -#ifdef __sparc -static void -save_temp_over(kstat_t *kp, ks_instance_t *ksi) -{ - short *sh = (short *)(kp->ks_data); - char *value; - - assert(kp->ks_data_size == sizeof (short)); - - (void) asprintf(&value, "%hu", *sh); - SAVE_STRING_X(ksi, "override", value); - free(value); -} -#endif - -#ifdef __sparc -static void -save_ps_shadow(kstat_t *kp, ks_instance_t *ksi) -{ - uchar_t *uchar = (uchar_t *)(kp->ks_data); - - assert(kp->ks_data_size == SYS_PS_COUNT); - - SAVE_CHAR_X(ksi, "core_0", *uchar++); - SAVE_CHAR_X(ksi, "core_1", *uchar++); - SAVE_CHAR_X(ksi, "core_2", *uchar++); - SAVE_CHAR_X(ksi, "core_3", *uchar++); - SAVE_CHAR_X(ksi, "core_4", *uchar++); - SAVE_CHAR_X(ksi, "core_5", *uchar++); - SAVE_CHAR_X(ksi, "core_6", *uchar++); - SAVE_CHAR_X(ksi, "core_7", *uchar++); - SAVE_CHAR_X(ksi, "pps_0", *uchar++); - SAVE_CHAR_X(ksi, "clk_33", *uchar++); - SAVE_CHAR_X(ksi, "clk_50", *uchar++); - SAVE_CHAR_X(ksi, "v5_p", *uchar++); - SAVE_CHAR_X(ksi, "v12_p", *uchar++); - SAVE_CHAR_X(ksi, "v5_aux", *uchar++); - SAVE_CHAR_X(ksi, "v5_p_pch", *uchar++); - SAVE_CHAR_X(ksi, "v12_p_pch", *uchar++); - SAVE_CHAR_X(ksi, "v3_pch", *uchar++); - SAVE_CHAR_X(ksi, "v5_pch", *uchar++); - SAVE_CHAR_X(ksi, "p_fan", *uchar++); -} -#endif - -#ifdef __sparc -static void -save_fault_list(kstat_t *kp, ks_instance_t *ksi) -{ - struct ft_list *fault; - char name[KSTAT_STRLEN + 7]; - int i; - - for (i = 1, fault = (struct ft_list *)(kp->ks_data); - i <= 999999 && i <= kp->ks_data_size / sizeof (struct ft_list); - i++, fault++) { - (void) snprintf(name, sizeof (name), "unit_%d", i); - SAVE_INT32_X(ksi, name, fault->unit); - (void) snprintf(name, sizeof (name), "type_%d", i); - SAVE_INT32_X(ksi, name, fault->type); - (void) snprintf(name, sizeof (name), "fclass_%d", i); - SAVE_INT32_X(ksi, name, fault->fclass); - (void) snprintf(name, sizeof (name), "create_time_%d", i); - SAVE_HRTIME_X(ksi, name, fault->create_time); - (void) snprintf(name, sizeof (name), "msg_%d", i); - SAVE_STRING_X(ksi, name, fault->msg); - } -} -#endif - static void save_named(kstat_t *kp, ks_instance_t *ksi) { diff --git a/usr/src/cmd/stat/kstat/kstat.h b/usr/src/cmd/stat/kstat/kstat.h index b59263398c..9fd2077dce 100644 --- a/usr/src/cmd/stat/kstat/kstat.h +++ b/usr/src/cmd/stat/kstat/kstat.h @@ -22,6 +22,7 @@ * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Copyright 2013 David Hoeppner. All rights reserved. * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + * Copyright 2020 Peter Tribble. */ #ifndef _STAT_KSTAT_H @@ -41,9 +42,6 @@ #ifdef __sparc #include <vm/hat_sfmmu.h> -#include <sys/simmstat.h> -#include <sys/sysctrl.h> -#include <sys/fhc.h> #endif #define KSTAT_DATA_HRTIME (KSTAT_DATA_STRING + 1) @@ -85,7 +83,7 @@ typedef union ks_value { nvpair_insert(I, #N, &v, KSTAT_DATA_UINT32); \ } -#define SAVE_INT64(I, S, N) \ +#define SAVE_INT64(I, S, N) \ { \ ks_value_t v; \ v.i64 = S->N; \ @@ -167,7 +165,7 @@ typedef struct ks_instance { char ks_name[KSTAT_STRLEN]; char ks_module[KSTAT_STRLEN]; char ks_class[KSTAT_STRLEN]; - int ks_instance; + int ks_instance; uchar_t ks_type; hrtime_t ks_snaptime; list_t ks_nvlist; @@ -214,13 +212,6 @@ static void save_nfs(kstat_t *, ks_instance_t *); #ifdef __sparc static void save_sfmmu_global_stat(kstat_t *, ks_instance_t *); static void save_sfmmu_tsbsize_stat(kstat_t *, ks_instance_t *); -static void save_simmstat(kstat_t *, ks_instance_t *); -/* Helper function for save_temperature() */ -static char *short_array_to_string(short *, int); -static void save_temperature(kstat_t *, ks_instance_t *); -static void save_temp_over(kstat_t *, ks_instance_t *); -static void save_ps_shadow(kstat_t *, ks_instance_t *); -static void save_fault_list(kstat_t *, ks_instance_t *); #endif /* Named kstat readers */ @@ -246,11 +237,6 @@ static struct { #ifdef __sparc {save_sfmmu_global_stat, "unix:sfmmu_global_stat"}, {save_sfmmu_tsbsize_stat, "unix:sfmmu_tsbsize_stat"}, - {save_simmstat, "unix:simm-status"}, - {save_temperature, "unix:temperature"}, - {save_temp_over, "unix:temperature override"}, - {save_ps_shadow, "unix:ps_shadow"}, - {save_fault_list, "unix:fault_list"}, #endif {NULL, NULL}, }; |