X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=sidebyside;f=snmp%2Flustre-snmp-util.c;h=4482f70d8b9afd8a9d6a82a48570c77d95f5e4cc;hb=3746550282c865deebb07bfd92bcb4d1dabdc675;hp=73a40cd68e75a09a1280ddd254f487167800e3c3;hpb=e6dbaee6acd3e7265c41cc603a34678dc8376363;p=fs%2Flustre-release.git diff --git a/snmp/lustre-snmp-util.c b/snmp/lustre-snmp-util.c index 73a40cd..4482f70 100644 --- a/snmp/lustre-snmp-util.c +++ b/snmp/lustre-snmp-util.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -16,17 +14,13 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * version 2 along with this program; If not, see + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -51,9 +45,7 @@ */ #include -#if defined (__linux__) #include -#endif #include #include #include @@ -279,7 +271,6 @@ void lustrefs_ctrl(int command) execvp(cmd[0], cmd); report("failed to execvp(\'%s %s\')",cmd[0],cmd[1]); } - return; } /***************************************************************************** @@ -296,8 +287,6 @@ void lustrefs_ctrl(int command) int get_sysstatus(void) { - FILE *fptr = NULL; - int len = 0; int ret_val = ERROR ; char sys_status[50] = {0}; @@ -426,7 +415,6 @@ void report(const char *fmt, ...) DEBUGMSGTL(("lsnmpd", "%s\n", buf)); fprintf(stderr, "%s\n", buf); - return; } @@ -542,9 +530,9 @@ unsigned char* size_t *var_len) { static unsigned char string[SPRINT_MAX_LEN]; - if( SUCCESS != read_string(file_path, string,sizeof(string))) + if( SUCCESS != read_string(file_path, (char *)string,sizeof(string))) return NULL; - *var_len = strlen(string); + *var_len = strlen((char *)string); return (unsigned char *) string; } @@ -734,8 +722,13 @@ error_out : extern int mds_stats_values(char * name_value, unsigned long long * nb_sample, unsigned long long * min, unsigned long long * max, unsigned long long * sum, unsigned long long * sum_square) { unsigned long long tmp_nb_sample=0,tmp_min=0,tmp_max=0,tmp_sum=0,tmp_sum_square=0; + glob_t path; + /*we parse the three MDS stat files and sum values*/ - if( stats_values(FILEPATH_MDS_SERVER_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + if (cfs_get_param_paths(&path, "mdt/MDS/mds/stats") != 0) + return ERROR; + if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + cfs_free_param_data(&path); return ERROR; } else { *nb_sample=tmp_nb_sample; @@ -744,8 +737,12 @@ extern int mds_stats_values(char * name_value, unsigned long long * nb_sample, u *sum=tmp_sum; *sum_square=tmp_sum_square; } + cfs_free_param_data(&path); - if( stats_values(FILEPATH_MDS_SERVER_READPAGE_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + if (cfs_get_param_paths(&path, "mdt/MDS/mds_readpage/stats") != 0) + return ERROR; + if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + cfs_free_param_data(&path); return ERROR; } else { *nb_sample += tmp_nb_sample; @@ -754,8 +751,12 @@ extern int mds_stats_values(char * name_value, unsigned long long * nb_sample, u *sum += tmp_sum; *sum_square += tmp_sum_square; } + cfs_free_param_data(&path); - if( stats_values(FILEPATH_MDS_SERVER_SETATTR_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + if (cfs_get_param_paths(&path, "mdt/MDS/mds_setattr/stats") != 0) + return ERROR; + if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) { + cfs_free_param_data(&path); return ERROR; } else { *nb_sample += tmp_nb_sample; @@ -764,6 +765,16 @@ extern int mds_stats_values(char * name_value, unsigned long long * nb_sample, u *sum += tmp_sum; *sum_square += tmp_sum_square; } + cfs_free_param_data(&path); return SUCCESS; } + +void convert_ull(counter64 *c64, unsigned long long ull, size_t *var_len) +{ + *var_len = sizeof(*c64); + c64->low = (unsigned long long) (0x0ffffffff & ull); + ull >>= 32; + c64->high = (unsigned long long) (0x0ffffffff & ull); +} +