Print this page
3396 new psrinfo does not print socket type
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
@@ -9,10 +9,11 @@
* http://www.illumos.org/license/CDDL.
*/
/*
* Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved.
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
*/
/*
* This implements psrinfo(1M), a utility to report various information
* about processors, cores, and threads (virtual cpus). This is mostly
@@ -95,10 +96,11 @@
char *v_fpu_type;
long v_clock_mhz;
long v_pchip_id; /* 1 per socket */
char *v_impl;
char *v_brand;
+ char *v_socket;
long v_core_id; /* n per chip_id */
};
static struct link *pchips = NULL;
static struct link *cores = NULL;
@@ -266,10 +268,13 @@
(void) printf(" %s\n", vcpu->v_impl);
}
if (((len = strlen(vcpu->v_brand)) != 0) &&
(strncmp(vcpu->v_brand, vcpu->v_impl, len) != 0))
(void) printf("\t%s", vcpu->v_brand);
+ if (strcmp(vcpu->v_socket, "Unknown") != 0)
+ (void) printf("\t[ %s: %s ]", _("Socket"),
+ vcpu->v_socket);
(void) putchar('\n');
} else {
for (l2 = chip->p_cores; l2; l2 = l2->l_next) {
core = l2->l_ptr;
(void) printf(_(" %s has %d virtual %s"),
@@ -505,10 +510,16 @@
vc->v_brand = _("(unknown)");
} else {
vc->v_brand = mystrdup(knp->value.str.addr.ptr);
}
+ if ((knp = kstat_data_lookup(ksp, "socket_type")) == NULL) {
+ vc->v_socket = "Unknown";
+ } else {
+ vc->v_socket = mystrdup(knp->value.str.addr.ptr);
+ }
+
if ((knp = kstat_data_lookup(ksp, "implementation")) == NULL) {
vc->v_impl = _("(unknown)");
} else {
vc->v_impl = mystrdup(knp->value.str.addr.ptr);
}