Date: Mon, 30 Jul 2001 17:02:44 -0400 (EDT) From: Alexander V P <alex@big-blue.net> To: Jim Freeze <jim@freeze.org> Cc: Marius <marius@mail.communityconnect.com>, questions@FreeBSD.ORG Subject: Re: getting cpu info Message-ID: <Pine.BSF.4.21.0107301701170.5504-100000@localhost> In-Reply-To: <Pine.BSF.4.21.0107301549520.5504-100000@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
hi,
comment lines:
/*
len = sizeof(cpuspeed);
if (sysctlbyname("machdep.tsc_freq", &cpuspeed, &len, NULL, NULL) == -1)
{
perror("sysctlbyname()");
return -1;
}
*/
and it will work ( w/o info about cpu speed)
alex
On Mon, 30 Jul 2001, Alexander V P wrote:
> hi,
> i've compiled and it didn't work. error:sysctlbyname(): Operation not
> supported
> any idea?
> tia,
> alex
>
> On Mon, 30 Jul 2001, Jim Freeze wrote:
>
> > Here is a little piece of c code that was previously posted here.
> > Works great.
> >
> > Sample output:
> >
> > % machid
> > FreeBSD CPU Information
> > Version 0.1
> > http://tribune.intranova.net
> >
> > Architecture: i386
> > Number of CPUs: 1
> > CPU Model: AMD-K6(tm) 3D processor
> > CPU Speed: 400MHz
> > Total Memory: 60MB
> > User Memory: 47MB
> >
> >
> > --begin code---
> > /*
> > * FreeBSD CPU Information 0.1
> > * ---------------------------
> > * Simple program to display the total RAM, and CPU information.
> > * Compile: cc -o cpuinfo cpuinfo.c
> > * ---------------------------
> > * Omachonu Ogali <oogali@intranova.net>
> > */
> >
> > /* Sample Output
> > * Architecture: i386
> > * Number of CPUs: 1
> > * CPU Model: Pentium II/Pentium II Xeon/Celeron
> > * CPU Speed: 400MHz
> > * Total Memory: 124MB
> > * User Memory: 104MB
> > */
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <string.h>
> > #include <unistd.h>
> > #include <sys/types.h>
> >
> > extern int errno;
> >
> > int main(void)
> > {
> > int len, numcpu, cpuspeed, totalmem, usermem;
> > char cpuarch[64], cpumodel[64];
> >
> > printf("FreeBSD CPU Information\n");
> > printf("Version 0.1\n");
> > printf("http://tribune.intranova.net\n\n");
> >
> > len = sizeof(cpuarch);
> > if (sysctlbyname("hw.machine_arch", &cpuarch, &len, NULL, NULL) == -1) {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > len = sizeof(cpumodel);
> > if (sysctlbyname("hw.model", &cpumodel, &len, NULL, NULL) == -1) {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > len = sizeof(cpuspeed);
> > if (sysctlbyname("machdep.tsc_freq", &cpuspeed, &len, NULL, NULL) == -1)
> > {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > len = sizeof(numcpu);
> > if (sysctlbyname("hw.ncpu", &numcpu, &len, NULL, NULL) == -1) {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > len = sizeof(totalmem);
> > if (sysctlbyname("hw.physmem", &totalmem, &len, NULL, NULL) == -1) {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > len = sizeof(usermem);
> > if (sysctlbyname("hw.usermem", &usermem, &len, NULL, NULL) == -1) {
> > perror("sysctlbyname()");
> > return -1;
> > }
> >
> > cpuspeed = cpuspeed / 1000000;
> > totalmem = (totalmem - 1048576) / 1048576;
> > usermem = (usermem - 1048576) / 1048576;
> >
> > printf("Architecture:\t%s\n", cpuarch);
> > printf("Number of CPUs:\t%d\n", numcpu);
> > printf("CPU Model:\t%s\n", cpumodel);
> > printf("CPU Speed:\t%dMHz\n", cpuspeed);
> > printf("Total Memory:\t%dMB\n", totalmem);
> > printf("User Memory:\t%dMB\n", usermem);
> > printf("\n");
> >
> > return 0;
> > }
> > --end code---
> >
> > On Mon, 30 Jul 2001, Marius wrote:
> >
> > >
> > > I am trying to audit our company's network of *nix machines to find
> > > candidates for replacement for newer faster models. I basically want
> > > write a script that logs in, executes some commands, and saves the
> > > appropriate info. Perl is certainly up to the task, so that isn't a
> > > problem. I'm just not sure how to grab the appropriate cpu info from our
> > > FreeBSD machines. Linux has `cat /proc/cpuinfo` but I can't think
> > > of anything similar in FreeBSD.
> > >
> > > I am most of the way there, I have everything I need except the speed of
> > > the cpu(s) in MHz. Anybody know a quick and easy way to grab the cpu speed
> > > on a machine without rebooting it? I can do a lot with sysctl
> > > to get memory resources and the number of cpu's, but a listing for
> > > speed has thus far eluded me.
> > >
> > > # sysctl hw.physmem
> > > # sysctl hw.ncpu
> > >
> > > Tell me most of what I want to know, but hw.model is not specific enough
> > > for my purposes. Am I overlooking a sysctl variable, or is there some
> > > other utility I could use? Anyone have a suggestion?
> > >
> > > Obviously this stuff would be in the boot messages of these machines, but
> > > these machines are in production, and I would rather not reboot them. And
> > > because of that 'darned' stability that FreeBSD has, the boot messages
> > > have long ago been wiped out of dmesg.yesterday and dmesg.today. ;)
> > >
> > > Any pointers would be appreciated. Please cc: me, as I am subscribed to
> > > stable, but not questions.
> > >
> > > ---------------------------------------------------------------
> > > -Marius M. Rex
> > >
> > > "Do not try to solve all life's problems at once -- learn to
> > > dread each day as it comes."
> > > -- Donald Kaul
> > >
> > >
> > >
> > >
> > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > with "unsubscribe freebsd-questions" in the body of the message
> > >
> >
> >
> > =========================================================
> > Jim Freeze
> > jim@freeze.org
> > ---------------------------------------------------------
> > No comment at this time.
> > http://www.freeze.org
> > =========================================================
> >
> >
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body of the message
> >
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of the message
>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0107301701170.5504-100000>
