From 9dbbcce60a15a48f8e8e0bc62794f2a82c38d3a6 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Sun, 15 Feb 2009 07:01:17 -0800 Subject: [PATCH] mv exp/ http://github.com/dougm/sigar-stuff --- exp/README | 2 - exp/argv.pl | 21 ---- exp/dump_kstats.c | 24 ---- exp/fork.pl | 27 ----- exp/intel_amd_cpu_models.txt | 37 ------ exp/lspv.pl | 26 ----- exp/proc_args.pl | 31 ----- exp/proc_stat.pl | 21 ---- exp/ptql.c | 57 --------- exp/sigar_proc_args.c | 50 -------- exp/sizeof.c | 83 ------------- exp/solaris_pargv.c | 137 ---------------------- exp/tar_proc.pl | 42 ------- exp/utsname.c | 15 --- src/sigar_main.c | 219 ----------------------------------- 15 files changed, 792 deletions(-) delete mode 100644 exp/README delete mode 100644 exp/argv.pl delete mode 100644 exp/dump_kstats.c delete mode 100644 exp/fork.pl delete mode 100644 exp/intel_amd_cpu_models.txt delete mode 100644 exp/lspv.pl delete mode 100644 exp/proc_args.pl delete mode 100644 exp/proc_stat.pl delete mode 100644 exp/ptql.c delete mode 100644 exp/sigar_proc_args.c delete mode 100644 exp/sizeof.c delete mode 100644 exp/solaris_pargv.c delete mode 100644 exp/tar_proc.pl delete mode 100644 exp/utsname.c delete mode 100644 src/sigar_main.c diff --git a/exp/README b/exp/README deleted file mode 100644 index 8e1c8a02..00000000 --- a/exp/README +++ /dev/null @@ -1,2 +0,0 @@ -this directory contains some experiments that are not in the codebase yet. -may or may not move forward, but would prefer not to loose these stuffs. diff --git a/exp/argv.pl b/exp/argv.pl deleted file mode 100644 index 9427ead0..00000000 --- a/exp/argv.pl +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/perl - -#generate a process with large argv for proc_args testing - -use strict; - -if (@ARGV) { - print "pid=$$\n"; - ; -} -else { - my(@argv); - my $nargs = 26; - my $arglen = 4256; - my $arg = 'a'; - for (my $i=0; $i<$nargs; $i++) { - push @argv, $arg++ x $arglen; - } - print "$^X $0\n"; - exec $^X, $0, @argv or die $!; -} diff --git a/exp/dump_kstats.c b/exp/dump_kstats.c deleted file mode 100644 index c7c523f8..00000000 --- a/exp/dump_kstats.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -/* gcc -lkstat -o dump_kstats dump_kstats.c */ - -static const char *kstat_type_names[] = { - "raw", "named", "intr", "io", "timer" -}; - -int main(int argc, char **argv) { - kstat_ctl_t *kc = kstat_open(); - kstat_t *kp; - - for (kp = kc->kc_chain; kp != 0; kp = kp->ks_next) { - if (strncmp(kp->ks_name, "kstat_", 6) == 0) { - continue; - } - fprintf(stdout, "%-5s %s::%s.%s[%d]\n", - kstat_type_names[kp->ks_type], - kp->ks_class, kp->ks_module, kp->ks_name, kp->ks_instance); - } - - kstat_close(kc); -} diff --git a/exp/fork.pl b/exp/fork.pl deleted file mode 100644 index bedaa909..00000000 --- a/exp/fork.pl +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/perl - -use strict; - -#create processes to benchmark ptql stuff - -my $num = shift || 10; -my @kids; -my $pid; - -for (my $i=0; $i<$num; $i++) { - if (!defined($pid = fork())) { - die "cannot fork: $!"; - } - elsif ($pid) { - #parent - push @kids, $pid; - } - else { - #child - sleep 10 while 1; - } -} - -for $pid (@kids) { - waitpid($pid, 0); -} diff --git a/exp/intel_amd_cpu_models.txt b/exp/intel_amd_cpu_models.txt deleted file mode 100644 index 1e85e437..00000000 --- a/exp/intel_amd_cpu_models.txt +++ /dev/null @@ -1,37 +0,0 @@ -#common cpu model names -#linux /proc/cpuinfo model name -#win32 HKLM/HARDWARE/DESCRIPTION/System/CentralProcessor/0/ProcessorNameString - -Intel(R) Xeon(TM) CPU 2.40GHz -Pentium III (Cascades) -Celeron (Mendocino) -Pentium III (Coppermine) -Pentium 75 - 200 -AMD-K6(tm)-III Processor -AMD Opteron(tm) Processor 246 -Opteron MP w/ 1MB -Intel(R) XEON(TM) CPU 1.80GHz -Pentium II (Deschutes) -Intel(R) Pentium(R) 4 CPU 1.80GHz -AMD-K6(tm) 3D+ Processor -AMD Athlon(tm) processor -AMD Athlon(tm) XP 1900+ -Intel(R) Celeron(R) CPU 1.70GHz -AMD Athlon(TM) XP 2400+ -AMD Athlon (TM) -Pentium Pro -Pentium III (Katmai) -mobile AMD Athlon(tm) 4 Processor -AMD Duron(tm) Processor -AMD Athlon(TM) XP1700+ -Pentium II (Klamath) -Pentium III (Katmai) -AMD Athlon(tm) MP Processor 1800+ -Pentium MMX -Intel(R) Pentium(R) 4 Mobile CPU 1.60GHz -Intel(R) Celeron(TM) CPU 1200MHz -Intel(R) Pentium(R) III CPU family 1400MHz -Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz -Intel(R) Celeron(R) CPU 2.30GHz -Intel(R) Pentium(R) M processor 1500MHz -Intel(R) Xeon(TM) MP CPU 2.80GHz diff --git a/exp/lspv.pl b/exp/lspv.pl deleted file mode 100644 index 0be765d7..00000000 --- a/exp/lspv.pl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/perl - -use strict; - -my $lspv = "/usr/sbin/lspv"; - -open LSPV, "$lspv|" or die; -my(@lspv) = ; -close LSPV; - -my $dlm = ("-" x 25) . "\n"; - -print "$lspv\n", @lspv; -print $dlm; - -for my $line (@lspv) { - my $disk = (split /\s+/, $line)[0]; - next unless $disk; - next if $line =~ / None/; - my $cmd = "$lspv -l $disk"; - open LSPV, "$cmd|" or die; - my(@pv) = ; - close LSPV; - print "$cmd\n", @pv; - print $dlm; -} diff --git a/exp/proc_args.pl b/exp/proc_args.pl deleted file mode 100644 index eb684d98..00000000 --- a/exp/proc_args.pl +++ /dev/null @@ -1,31 +0,0 @@ -#!perl - -use strict; - -my $match = $ARGV[0]; - -my $proc = $ENV{PROC_FS} || "/proc"; -opendir DH, $proc or die; -chdir $proc; -local $/; - -while (my $pid = readdir DH) { - next unless $pid =~ /^\d+$/; - open FH, "$pid/cmdline" or next; - my(@cmdline) = split /\000/, ; - close FH; - if ($match) { - next unless grep { /$match/o } @cmdline; - } - - print "-------------------------------\n"; - - my $i=0; - print "pid=$pid\n"; - for my $arg (@cmdline) { - print "$i='$arg'\n"; - $i++; - } -} - -closedir DH; diff --git a/exp/proc_stat.pl b/exp/proc_stat.pl deleted file mode 100644 index 1ecdbcf8..00000000 --- a/exp/proc_stat.pl +++ /dev/null @@ -1,21 +0,0 @@ -#!perl - -use strict; -#examine specific field from /proc/*/stat -my $field = shift; - -my $proc = $ENV{PROC_FS} || "/proc"; -opendir DH, $proc or die; -chdir $proc; -local $/; - -while (my $pid = readdir DH) { - next unless $pid =~ /^\d+$/; - open FH, "$pid/stat" or next; - my $data = ; - close FH; - my(@fields) = split /\s+/, $data; - print "$pid $fields[1] -> $fields[$field]\n"; -} - -closedir DH; diff --git a/exp/ptql.c b/exp/ptql.c deleted file mode 100644 index cf20f66a..00000000 --- a/exp/ptql.c +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include "sigar.h" -#include "sigar_ptql.h" - -int ptql_test(sigar_t *sigar, char *ptql) { - int status, i; - sigar_proc_list_t proclist; - sigar_ptql_query_t *query; - sigar_ptql_error_t error; - - status = - sigar_proc_list_get(sigar, &proclist); - - if (status != SIGAR_OK) { - return status; - } - - status = - sigar_ptql_query_create(&query, ptql, &error); - - if (status != SIGAR_OK) { - return status; - } - - for (i=0; i -#include -/* -gcc -g -o sigar_proc_args -lsocket \ --L ../bindings/java/sigar-bin/lib -lsigar-sparc-sun-solaris-2.x \ --I ../include sigar_proc_args.c -*/ -int main(int argc, char **argv) -{ - sigar_t *sigar; - sigar_proc_list_t procs; - sigar_proc_args_t args; - int n; - - if (sigar_open(&sigar) != SIGAR_OK) { - fprintf(stderr, "Error opening sigar!\n"); - return -1; - } - - sigar_proc_list_get(sigar, &procs); - - for (n=0; n -#include - -typedef struct { - const char *name; - unsigned int size; -} sizeof_info_t; - -#define SIZEOF_INFO(v) \ - {#v, sizeof(v)} - -#ifdef solaris - -#include -#include -#include -#include -#include - -static sizeof_info_t sizeof_info[] = { - /* kstat */ - SIZEOF_INFO(kstat_named_t), - SIZEOF_INFO(vminfo_t), - SIZEOF_INFO(cpu_stat_t), - SIZEOF_INFO(cpu_vminfo_t), - SIZEOF_INFO(cpu_sys_stats_t), - SIZEOF_INFO(kstat_io_t), - /* procfs */ - SIZEOF_INFO(psinfo_t), - SIZEOF_INFO(prusage_t), - SIZEOF_INFO(prcred_t), - SIZEOF_INFO(pstatus_t), - SIZEOF_INFO(struct proc), - SIZEOF_INFO(struct user), - {NULL, 0} -}; - -#endif - -#ifdef hpux - -#include -#include -#include -#include - -static sizeof_info_t sizeof_info[] = { - SIZEOF_INFO(struct pst_static), - SIZEOF_INFO(struct pst_status), - SIZEOF_INFO(struct pst_dynamic), - SIZEOF_INFO(struct pst_swapinfo), - SIZEOF_INFO(struct mntent), - SIZEOF_INFO(struct statfs), - SIZEOF_INFO(struct nmparms), - SIZEOF_INFO(mib_ifEntry), - SIZEOF_INFO(mib_ipRouteEnt), - {NULL, 0} -}; - -#endif - -static void print_sizeof_info(sizeof_info_t *info) -{ - while (info->name) { - printf("sizeof(%s) == %d\n", info->name, info->size); - ++info; - } -} - -int main(void) { - system("uname -a"); - print_sizeof_info(sizeof_info); - return 0; -} diff --git a/exp/solaris_pargv.c b/exp/solaris_pargv.c deleted file mode 100644 index 4ebad38b..00000000 --- a/exp/solaris_pargv.c +++ /dev/null @@ -1,137 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define PROC_ERRNO ((errno == ENOENT) ? ESRCH : errno) - -#define my_pread(fd, ptr, type, offset) \ - (pread(fd, ptr, sizeof(type), offset) == sizeof(type)) - -static int proc_psinfo_get(psinfo_t *psinfo, pid_t pid) -{ - int fd, retval = 0; - char buffer[BUFSIZ]; - - sprintf(buffer, "/proc/%d/psinfo", pid); - - if ((fd = open(buffer, O_RDONLY)) < 0) { - return ESRCH; - } - - if (!my_pread(fd, psinfo, psinfo_t, 0)) { - retval = errno; - } - - close(fd); - - return retval; -} - -int main(int argc, char **argv) -{ - DIR *dirp = opendir("/proc"); - struct dirent *ent; - char *models[] = { - "unknown", "32bit", "64bit" - }; - - while ((ent = readdir(dirp))) { - pid_t pid; - psinfo_t psinfo; - int retval; - char buffer[BUFSIZ]; - char *argvb[56]; - char **argvp = argvb; - - int n, fd; - size_t nread = 0; - unsigned int argv_size; - - if (!isdigit(*ent->d_name)) { - continue; - } - psinfo.pr_dmodel = 0; - pid = strtoul(ent->d_name, NULL, 10); - retval = proc_psinfo_get(&psinfo, pid); - printf("---------------------------------\n"); - printf("pid=%d, status=%s, model=%s\n", - pid, retval ? strerror(retval) : "OK", - models[psinfo.pr_dmodel]); - - argv_size = sizeof(*argvp) * psinfo.pr_argc; - sprintf(buffer, "/proc/%d/as", pid); - printf("argc=%d, argv_size=%d\n", - psinfo.pr_argc, argv_size); - - if ((fd = open(buffer, O_RDONLY)) < 0) { - printf("open(%s) == %s\n", - buffer, strerror(PROC_ERRNO)); - if (argvp != argvb) { - free(argvp); - } - continue; - } - - if (argv_size > sizeof(argvb)) { - argvp = malloc(argv_size); - } - - if ((nread = pread(fd, argvp, argv_size, psinfo.pr_argv)) <= 0) { - close(fd); - printf(" pread(%d, 0x%lx, %d, 0x%lx) == %d (%s)\n", - fd, (unsigned long)argvp, argv_size, - (unsigned long)psinfo.pr_argv, - nread, strerror(errno)); - continue; - } - - for (n = 0; n < psinfo.pr_argc; n++) { - int alen; - char *arg; - - if ((nread = pread(fd, buffer, sizeof(buffer), (off_t)argvp[n])) <= 0) { - close(fd); - printf(" %-2d) pread(%d, 0x%lx, %d, 0x%lx) == %d (%s)\n", - n, fd, (unsigned long)&buffer[0], sizeof(buffer), - (unsigned long)argvp[n], - nread, strerror(errno)); - continue; - } - - printf(" %-2d) nread=%-4d, ", n, nread); - fflush(stdout); - alen = strlen(buffer)+1; - printf(" alen=%-4d ", alen); - fflush(stdout); - arg = malloc(alen); - memcpy(arg, buffer, alen); - printf(" {%s}\n", arg); - fflush(stdout); - } - - if (argvp != argvb) { - free(argvp); - } - - close(fd); - } - - closedir(dirp); - - return 0; -} - diff --git a/exp/tar_proc.pl b/exp/tar_proc.pl deleted file mode 100644 index 294cd587..00000000 --- a/exp/tar_proc.pl +++ /dev/null @@ -1,42 +0,0 @@ -#!perl - -#create a .tar.gz of /proc/*/@proc_files - -use strict; - -my(@proc_files) = qw(cmdline stat statm status maps); -my $cpname = "copy-proc"; -my $tmp = $ENV{TMPDIR} || "/tmp"; -my $tmpdir = "$tmp/$cpname"; -unless (-e $tmpdir) { - mkdir $tmpdir or die "mkdir $tmpdir: $!"; - print "created $tmpdir\n"; -} - -opendir DH, "/proc" or die; -chdir "/proc"; - -while (my $pid = readdir DH) { - next unless $pid =~ /^\d+$/; - for my $name (@proc_files) { - unless (-e "$tmpdir/$pid") { - mkdir "$tmpdir/$pid"; - } - local *SRC, *TARG; - my $file = "$pid/$name"; - open SRC, $file or next; - open TARG, ">$tmpdir/$file" or die "open $tmpdir/$file: $!"; - print TARG ; - close TARG; - close SRC; - } -} - -chdir $tmp or die "chdir $tmp: $!"; -system "tar -cf $cpname.tar $cpname"; -system "gzip -f $cpname.tar"; - -print "files saved to $tmp/$cpname.tar.gz\n"; -print "to cleanup, run: rm -rf $tmp/$cpname\n"; - - diff --git a/exp/utsname.c b/exp/utsname.c deleted file mode 100644 index a9b25b30..00000000 --- a/exp/utsname.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -int main(int argc, char **argv) { - struct utsname name; - uname(&name); - - printf("sysname....%s\n", name.sysname); - printf("nodename...%s\n", name.nodename); - printf("release....%s\n", name.release); - printf("version....%s\n", name.version); - printf("machine....%s\n", name.machine); - - return 0; -} diff --git a/src/sigar_main.c b/src/sigar_main.c deleted file mode 100644 index ca7415f8..00000000 --- a/src/sigar_main.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. - * This file is part of SIGAR. - * - * SIGAR is free software; you can redistribute it and/or modify - * it under the terms version 2 of the GNU General Public License as - * published by the Free Software Foundation. This program is distributed - * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without - * even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - */ - -#define WIN32 -#if defined(WIN32) -#define WINDOWS_LEAN_AND_MEAN -#define FILESEP '\\' -#define LIBPRE "" -#include "windows.h" -#else -#define FILESEP '/' -#define LIBPRE "lib" -#include -#include -#include -#endif -#include -#include -#include -#include -#include "sigar.h" -#include "sigar_fileinfo.h" - -#if defined(WIN32) -# define LIBEXT "dll" -#elif defined(DARWIN) -# define LIBEXT "dylib" -#else -# define LIBEXT "so" -#endif - -typedef struct { - const char *name; - void *func; -} sigar_callback_t; - -struct { - struct { - const char *name; - sigar_version_t * (*func)(void); - } version; - - struct { - const char *name; - int (*func)(sigar_t **); - } open; - - struct { - const char *name; - int (*func)(sigar_t *); - } close; - - struct { - const char *name; - int (*func)(sigar_t *, sigar_pid_t, sigar_proc_exe_t *); - } proc_exe; - struct { - const char *name; - int (*func)(sigar_t *, sigar_pid_t, sigar_proc_args_t *); - } proc_args; - struct { - const char *name; - int (*func)(sigar_t *, sigar_pid_t, sigar_proc_env_t *); - } proc_env; - struct { - const char *name; - int (*func)(sigar_t *, sigar_pid_t, sigar_proc_modules_t *); - } proc_modules; - struct { - const char *name; - int (*func)(sigar_t *, sigar_pid_t, sigar_proc_fd_t *); - } proc_fd; - struct { - const char *name; - int (*func)(sigar_t *, int, unsigned long, sigar_pid_t *); - } proc_port; - - struct { - const char *name; - int (*func)(sigar_t *, const char *dir, sigar_dir_stat_t *); - } dir_stat; - struct { - const char *name; - int (*func)(sigar_t *, const char *dir, sigar_dir_usage_t *); - } dir_usage; - sigar_callback_t end; -} sigar_callbacks = { - { "sigar_version_get", NULL }, - { "sigar_open", NULL }, - { "sigar_close", NULL }, - { "sigar_proc_exe_get", NULL }, - { "sigar_proc_args_get", NULL }, - { "sigar_proc_env_get", NULL }, - { "sigar_proc_modules_get", NULL }, - { "sigar_proc_fd_get", NULL }, - { "sigar_proc_port_get", NULL }, - { "sigar_dir_stat_get", NULL }, - { "sigar_dir_usage_get", NULL }, - { NULL, NULL } -}; - -static int sigar_main(char *argv0) -{ - int status; - sigar_t *sigar; - char *errmsg; - char *ptr; - char sigarlib[8096], archlib[512]; - void *handle; - sigar_callback_t *callbacks = - (sigar_callback_t *)&sigar_callbacks; - - strcpy(sigarlib, argv0); -#ifdef WIN32 - if ((ptr = strstr(sigarlib, ".exe"))) { - *ptr = '\0'; - } -#endif - ptr = strrchr(sigarlib, FILESEP); - if (ptr) { - ++ptr; - } - else { - ptr = sigarlib; - } - - sprintf(archlib, LIBPRE "%s." LIBEXT, ptr); - strcpy(ptr, archlib); - -#if defined(__sun) - dlopen("/usr/lib/libnsl.so", RTLD_NOW|RTLD_GLOBAL); -#endif - -#if defined(WIN32) - if (!(handle = LoadLibrary(sigarlib))) { - errmsg = "XXX FormatMessage"; - } -#else - if (!(handle = dlopen(sigarlib, RTLD_LAZY))) { - errmsg = dlerror(); - } -#endif - - if (!handle) { - fprintf(stderr, "Error opening '%s': %s\n", - sigarlib, errmsg); - exit(1); - } - - while (callbacks->name) { -#if defined(WIN32) - callbacks->func = GetProcAddress(handle, callbacks->name); -#else - callbacks->func = dlsym(handle, callbacks->name); -#endif - callbacks++; - } - - if (isatty(fileno(stdin))) { - sigar_version_t *version; - - if (!sigar_callbacks.version.func) { - exit(1); - } - - version = sigar_callbacks.version.func(); - - printf("version=%s, build date=%s\n", - version->version, version->build_date); -#if defined(WIN32) - FreeLibrary(handle); -#else - dlclose(handle); -#endif - exit(0); - } - - status = sigar_callbacks.open.func(&sigar); - - if (status != SIGAR_OK) { - perror("sigar_open"); - return 1; - } - - /* XXX pipe loop */ - - sigar_callbacks.close.func(sigar); -#if defined(WIN32) - FreeLibrary(handle); -#else - dlclose(handle); -#endif - return 0; -} - -int main(int argc, char **argv) -{ - if (argc == 1) { - return sigar_main(argv[0]); - } - else { - return 1; /*XXX*/ - } -}