Linux MIPS Architecture development
 help / color / mirror / Atom feed
* hardware independent hinv
@ 1997-05-28 15:17 Ariel Faigon
  1997-05-28 15:17 ` Ariel Faigon
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Ariel Faigon @ 1997-05-28 15:17 UTC (permalink / raw)
  To: linux

Just forwarding since it sounds someone hopes that Linux/MIPS
will some day have a HW independent hinv... - Ariel

----- Forwarded message from Dave Olson -----

>From olson@anchor  Mon May 12 13:50:21 1997
Date: Mon, 12 May 1997 13:50:18 -0700
From: olson@anchor (Dave Olson)
Message-Id: <199705122050.NAA26767@anchor.engr.sgi.com>
To: olson@anchor (Dave Olson), scotth@sgi.com
Subject: Re: missing machfile
Cc: swmgr@swmgr, breyer@swmgr, ariel@cthulhu
References: <199705121525.IAA23143@swmgr.engr.sgi.com>
    <199705121714.KAA23773@anchor.engr.sgi.com>
    <199705121854.LAA18312@anchor.engr.sgi.com>

|  I would assume that hinv is hardware-dependent, because of the
|  mapping issues?  Or is it table driven off of an analogue of the machtab?

Still all compiled in.  Bug/rfe open for years now about making it table
driven.

|  Unfortunately, nothing better is generally available across
|  platforms and releases.

Yes, and that's something that would be nice to fix.  Maybe linux will
do it, and we can copy them.

|  D> Lots, for any non-trivial app.  They don't have to, but often want to.
|  
|  ???  Non-trivial as in "big and powerful", or as in "gets close to
|  the hardware"?  I would argue that emacs and perl both fit the

Both/either.  Not all  big apps, of course.

|  I was looking at the options to uname, specifically "-p".  Based
|  upon the man page, shouldn't `uname -p` return "mips3" instead of
|  "mips" for my IP22?  That is one obvious meaning for:

Yes, but then you break even more of the configure scripts.  Again,
a no-win situation.

|  I was just curious is there was somehow we could make life easier
|  for configure scripts to port software for IRIX...  On the other
|  hand, we generally only get bad comments about /bin/install, and at
|  least we *don't* get comments like:

|  # AIX cpp loses on an empty file, so make sure it contains at least a newline.
Using cpp is a horrible solution...

|  It is hard to add functionality without breaking stuff.

A programmer's lament, if I ever heard one!

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

----- End of forwarded message from Dave Olson -----

-- 
Peace, Ariel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* hardware independent hinv
  1997-05-28 15:17 hardware independent hinv Ariel Faigon
@ 1997-05-28 15:17 ` Ariel Faigon
  1997-05-28 15:35 ` Mike Shaver
  1997-05-28 16:03 ` Ralf Baechle
  2 siblings, 0 replies; 17+ messages in thread
From: Ariel Faigon @ 1997-05-28 15:17 UTC (permalink / raw)
  To: linux

Just forwarding since it sounds someone hopes that Linux/MIPS
will some day have a HW independent hinv... - Ariel

----- Forwarded message from Dave Olson -----

From olson@anchor  Mon May 12 13:50:21 1997
Date: Mon, 12 May 1997 13:50:18 -0700
From: olson@anchor (Dave Olson)
Message-Id: <199705122050.NAA26767@anchor.engr.sgi.com>
To: olson@anchor (Dave Olson), scotth@sgi.com
Subject: Re: missing machfile
Cc: swmgr@swmgr, breyer@swmgr, ariel@cthulhu
References: <199705121525.IAA23143@swmgr.engr.sgi.com>
    <199705121714.KAA23773@anchor.engr.sgi.com>
    <199705121854.LAA18312@anchor.engr.sgi.com>

|  I would assume that hinv is hardware-dependent, because of the
|  mapping issues?  Or is it table driven off of an analogue of the machtab?

Still all compiled in.  Bug/rfe open for years now about making it table
driven.

|  Unfortunately, nothing better is generally available across
|  platforms and releases.

Yes, and that's something that would be nice to fix.  Maybe linux will
do it, and we can copy them.

|  D> Lots, for any non-trivial app.  They don't have to, but often want to.
|  
|  ???  Non-trivial as in "big and powerful", or as in "gets close to
|  the hardware"?  I would argue that emacs and perl both fit the

Both/either.  Not all  big apps, of course.

|  I was looking at the options to uname, specifically "-p".  Based
|  upon the man page, shouldn't `uname -p` return "mips3" instead of
|  "mips" for my IP22?  That is one obvious meaning for:

Yes, but then you break even more of the configure scripts.  Again,
a no-win situation.

|  I was just curious is there was somehow we could make life easier
|  for configure scripts to port software for IRIX...  On the other
|  hand, we generally only get bad comments about /bin/install, and at
|  least we *don't* get comments like:

|  # AIX cpp loses on an empty file, so make sure it contains at least a newline.
Using cpp is a horrible solution...

|  It is hard to add functionality without breaking stuff.

A programmer's lament, if I ever heard one!

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

----- End of forwarded message from Dave Olson -----

-- 
Peace, Ariel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 15:17 hardware independent hinv Ariel Faigon
  1997-05-28 15:17 ` Ariel Faigon
@ 1997-05-28 15:35 ` Mike Shaver
  1997-05-28 17:42   ` Miguel de Icaza
  1997-05-28 16:03 ` Ralf Baechle
  2 siblings, 1 reply; 17+ messages in thread
From: Mike Shaver @ 1997-05-28 15:35 UTC (permalink / raw)
  To: ariel; +Cc: linux

Thus spake Ariel Faigon:
> Just forwarding since it sounds someone hopes that Linux/MIPS
> will some day have a HW independent hinv... - Ariel

Do they need more than the /proc stuff?
Larry has a perl version of hinv that reads from /proc/whatever, I
seem to recall.

Mike

-- 
#> Mike Shaver (shaver@ingenia.com) Ingenia Communications Corporation 
#>                   Welcome to the technocracy.
#>                                                                     
#> "you'd be so disappointed
#>              to find out that the magic was not
#>                          really meant for you" - OLP

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 15:17 hardware independent hinv Ariel Faigon
  1997-05-28 15:17 ` Ariel Faigon
  1997-05-28 15:35 ` Mike Shaver
@ 1997-05-28 16:03 ` Ralf Baechle
  1997-06-12  1:10   ` My first project on the Indy Miguel de Icaza
  2 siblings, 1 reply; 17+ messages in thread
From: Ralf Baechle @ 1997-05-28 16:03 UTC (permalink / raw)
  To: ariel; +Cc: linux

> Just forwarding since it sounds someone hopes that Linux/MIPS
> will some day have a HW independent hinv... - Ariel

Larry has shown me a perl script on his Linux/i386 box which does just
this.  I intend to supply the information required by such a script
via the proc filesystem.

  Ralf

> ----- Forwarded message from Dave Olson -----
> 
> >From olson@anchor  Mon May 12 13:50:21 1997
> Date: Mon, 12 May 1997 13:50:18 -0700
> From: olson@anchor (Dave Olson)
> Message-Id: <199705122050.NAA26767@anchor.engr.sgi.com>
> To: olson@anchor (Dave Olson), scotth@sgi.com
> Subject: Re: missing machfile
> Cc: swmgr@swmgr, breyer@swmgr, ariel@cthulhu
> References: <199705121525.IAA23143@swmgr.engr.sgi.com>
>     <199705121714.KAA23773@anchor.engr.sgi.com>
>     <199705121854.LAA18312@anchor.engr.sgi.com>
> 
> |  I would assume that hinv is hardware-dependent, because of the
> |  mapping issues?  Or is it table driven off of an analogue of the machtab?
> 
> Still all compiled in.  Bug/rfe open for years now about making it table
> driven.
> 
> |  Unfortunately, nothing better is generally available across
> |  platforms and releases.
> 
> Yes, and that's something that would be nice to fix.  Maybe linux will
> do it, and we can copy them.
> 
> |  D> Lots, for any non-trivial app.  They don't have to, but often want to.
> |  
> |  ???  Non-trivial as in "big and powerful", or as in "gets close to
> |  the hardware"?  I would argue that emacs and perl both fit the
> 
> Both/either.  Not all  big apps, of course.
> 
> |  I was looking at the options to uname, specifically "-p".  Based
> |  upon the man page, shouldn't `uname -p` return "mips3" instead of
> |  "mips" for my IP22?  That is one obvious meaning for:

Q: what exactly does that IP?? notation stand for?  Internal model names,
CPU modules, ???

> Yes, but then you break even more of the configure scripts.  Again,
> a no-win situation.

You're absolutely right.  For just that reason I changed the output for
little endian MIPS boxes from mipsel to mips a long time ago though
mipsel is logic when thinking of the generic GNU configuration names.

> |  I was just curious is there was somehow we could make life easier
> |  for configure scripts to port software for IRIX...  On the other
> |  hand, we generally only get bad comments about /bin/install, and at
> |  least we *don't* get comments like:

After the last few days I can say that porting to IRIX is a quite boring
job; most things just work.  Only ssh makes problem.  Solved by using
GCC (snapshot) instead of SGI's cc.

> Using cpp is a horrible solution...

Tell the people who invented imake ...

> |  It is hard to add functionality without breaking stuff.
> 
> A programmer's lament, if I ever heard one!

Or break what's broken ...

  Ralf

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 15:35 ` Mike Shaver
@ 1997-05-28 17:42   ` Miguel de Icaza
  1997-05-28 18:18     ` David S. Miller
  1997-05-30  7:14     ` Martin Knoblauch
  0 siblings, 2 replies; 17+ messages in thread
From: Miguel de Icaza @ 1997-05-28 17:42 UTC (permalink / raw)
  To: shaver; +Cc: ariel, linux


> > Just forwarding since it sounds someone hopes that Linux/MIPS
> > will some day have a HW independent hinv... - Ariel
> 
> Do they need more than the /proc stuff?
> Larry has a perl version of hinv that reads from /proc/whatever, I
> seem to recall.

Yesterday I went to see some guy running the University's new Origin
machine, and they showed me some monitoring tools on IRIX, very
impressive tools.  I want them on Linux :-).

There was this lovely tool that showed the memory map, with the
details on the usage.  You could click on say, Emacs, and get a map of
where Emacs pages were, and it seemed like it could read the symbol
table information from the process as well (it showed: "No symbols for
this page").

I also saw some printed slides on some program that seemed to let you
move related functions together in the binary to avoid page faults.
Can not really tell, as they were flipping trough them really quick.

I remember attending a presentation at Usenix where they talked about
this very feature.  This is something else we want in our binutils.

Miguel.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 17:42   ` Miguel de Icaza
@ 1997-05-28 18:18     ` David S. Miller
  1997-05-28 19:49       ` Miguel de Icaza
  1997-05-30  7:14     ` Martin Knoblauch
  1 sibling, 1 reply; 17+ messages in thread
From: David S. Miller @ 1997-05-28 18:18 UTC (permalink / raw)
  To: miguel; +Cc: shaver, ariel, linux

   Date: Wed, 28 May 1997 12:42:17 -0500
   From: Miguel de Icaza <miguel@nuclecu.unam.mx>

   I also saw some printed slides on some program that seemed to let
   you move related functions together in the binary to avoid page
   faults.  Can not really tell, as they were flipping trough them
   really quick.

   I remember attending a presentation at Usenix where they talked
   about this very feature.  This is something else we want in our
   binutils.

The solaris dynamic linker does this at run time, it collapses
together only the functions/data which your program could ever
reference into one contiguous chunk of pages.  I haven't worked out
the complete set of details of how this is done completely at run
time, and efficiently as well, but I have spoken to Eric Youngdale and
other Linux userland experts about this trick.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
@ 1997-05-28 19:12 Larry McVoy
  1997-05-28 19:12 ` Larry McVoy
  1997-05-28 19:19 ` Mike Shaver
  0 siblings, 2 replies; 17+ messages in thread
From: Larry McVoy @ 1997-05-28 19:12 UTC (permalink / raw)
  To: Ariel Faigon; +Cc: linux, olson, scotth, swmgr, breyer

: Just forwarding since it sounds someone hopes that Linux/MIPS
: will some day have a HW independent hinv... - Ariel

Here's my first pass at it.  It certainly isn't complete but it is a 
start.  We could evolve Linux' /proc to fully handle this.

#!/usr/bin/perl -w

# Try and emulate SGI's hinv command
# We want to figure out the following:
# CPU type, mhz, memory, busses, floppies, disks, tapes, cdroms, ttys,
# networks, graphics.

# indy ~ hinv
# Iris Audio Processor: version A2 revision 4.1.0
# 1 175 MHZ IP22 Processor
# FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
# CPU: MIPS R4400 Processor Chip Revision: 6.0
# On-board serial ports: 2
# On-board bi-directional parallel port
# Data cache size: 16 Kbytes
# Instruction cache size: 16 Kbytes
# Secondary unified instruction/data cache size: 1 Mbyte on Processor 0
# Main memory size: 64 Mbytes
# Vino video: unit 0, revision 0
# Integral ISDN: Basic Rate Interface unit 0, revision 1.0
# XPI FDDI controller: xpi0, firmware version 9601221233, SAS
# Integral Ethernet: ec0, version 1
# Integral SCSI controller 0: Version WD33C93B, revision D
#  Disk drive: unit 2 on SCSI controller 0
#  Disk drive: unit 1 on SCSI controller 0
# Graphics board: Indy 24-bit

# i586 ~ hinv
# Main memory size: 24 Mbytes
# 1 GenuineIntel 586 processor
# 1 16450 serial port
# 2 16550A serial ports
# 1 post-1991 82077 floppy controller
# 1 1.44M floppy drive
# 1 vga+ graphics device
# 1 keyboard
# 2 ethernet interfaces
#   eth0: 3Com 3c595 Vortex 100baseTX
#   eth2: 3c509
# 1 SCSI tape 1 SCSI cdrom 2 SCSI disks
#   QUANTUM  EMPIRE_1080S
#   HP       C3725S
#   ARCHIVE  VIPER 150  21531
#   TOSHIBA  CD-ROM XM-3501TA
# PCI bus devices:
#    SCSI storage controller: NCR 53c810 (rev 2).
#    Ethernet controller: 3Com 3C595 100bTX (rev 0).
#    VGA compatible device: S3 Inc. Vision 964-P (rev 0).
#    IDE interface: Intel 82371 Triton PIIX (rev 2).
#    ISA bridge: Intel 82371 Triton PIIX (rev 2).
#    Host bridge: Intel 82437 (rev 2).

open(FD, "dmesg|") || die "no dmesg";
while (<FD>) {
	@_ = split;
	if (/^Memory:/) {
		$_[1] =~ s|.*/||;
		$_[1] =~ s|k$||;
		$_[1] /= 1024;
		$mem = "Main memory size: $_[1] Mbytes\n";
	} elsif (/^tty/) {
		$ttys{$_[$#_]}++;
	} elsif (/^Floppy/) {
		$floppy{$_[$#_]}++;
	} elsif (/^FDC /) {
		s/.*is a //;
		chop;
		$fdc{$_}++;
	} elsif (/^scsi : detected/) {
		$scsi = $_;
	} elsif (/^eth\d.* at /) {
		s/\s*at .*//;
		push(@eth, $_);
	} 
}
open(FD, "/proc/cpuinfo");
while (<FD>) {
	@_ = split;
	if (/cpu/) {
		$cpu = $_[$#_];
	}
	if (/vendor/) {
		$cpus{"$_[$#_] $cpu"}++;
	}
}
open(FD, "/proc/ioports");
while (<FD>) {
	if (/kbd/ || /keyboard/) {
		$kbd++;
	} elsif (/vga/) {
		@_ = split;
		$graphics{$_[$#_]}++;
	}
}

print $mem if (defined $mem);
foreach $key (keys %cpus) {
	print "$cpus{$key} $key processor";
	print $cpus{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %ttys) {
	print "$ttys{$key} $key serial port";
	print $ttys{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %fdc) {
	print "$fdc{$key} $key floppy controller";
	print $fdc{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %floppy) {
	print "$floppy{$key} $key floppy drive";
	print $floppy{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %graphics) {
	print "$graphics{$key} $key graphics device";
	print $graphics{$key} > 1 ? "s\n" : "\n";
}
if (defined $kbd) {
	print "$kbd keyboard";
	print $kbd > 1 ? "s\n" : "\n";
}
if ($#eth > -1) {
	$n = $#eth + 1;
	print "$n ethernet interface";
	print $n > 1 ? "s\n" : "\n";
	foreach $eth (@eth) {
		print "  $eth";
	}
}
if (defined $scsi) {
	$scsi =~ s/.*detected //;
	$scsi =~ s/ total.//;
	print $scsi;
	open(FD, "/proc/scsi/scsi");
	$_ = <FD>;
	while (<FD>) {
		next unless /Vendor/;
		s/.*Vendor:\s*//;
		s/\s*Rev:.*//;
		s/Model:\s*//;
		print "  $_";
	}
}

open(FD, "/proc/pci");
$done = 0;
while (<FD>) {
	if (/^\s*Bus/) {
		if ($done == 0) {
			print "PCI bus devices:\n";
			$done++;
		}
		$_ = <FD>;
		print;
	}
}

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 19:12 hardware independent hinv Larry McVoy
@ 1997-05-28 19:12 ` Larry McVoy
  1997-05-28 19:19 ` Mike Shaver
  1 sibling, 0 replies; 17+ messages in thread
From: Larry McVoy @ 1997-05-28 19:12 UTC (permalink / raw)
  To: Ariel Faigon; +Cc: linux, olson, scotth, swmgr, breyer

: Just forwarding since it sounds someone hopes that Linux/MIPS
: will some day have a HW independent hinv... - Ariel

Here's my first pass at it.  It certainly isn't complete but it is a 
start.  We could evolve Linux' /proc to fully handle this.

#!/usr/bin/perl -w

# Try and emulate SGI's hinv command
# We want to figure out the following:
# CPU type, mhz, memory, busses, floppies, disks, tapes, cdroms, ttys,
# networks, graphics.

# indy ~ hinv
# Iris Audio Processor: version A2 revision 4.1.0
# 1 175 MHZ IP22 Processor
# FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
# CPU: MIPS R4400 Processor Chip Revision: 6.0
# On-board serial ports: 2
# On-board bi-directional parallel port
# Data cache size: 16 Kbytes
# Instruction cache size: 16 Kbytes
# Secondary unified instruction/data cache size: 1 Mbyte on Processor 0
# Main memory size: 64 Mbytes
# Vino video: unit 0, revision 0
# Integral ISDN: Basic Rate Interface unit 0, revision 1.0
# XPI FDDI controller: xpi0, firmware version 9601221233, SAS
# Integral Ethernet: ec0, version 1
# Integral SCSI controller 0: Version WD33C93B, revision D
#  Disk drive: unit 2 on SCSI controller 0
#  Disk drive: unit 1 on SCSI controller 0
# Graphics board: Indy 24-bit

# i586 ~ hinv
# Main memory size: 24 Mbytes
# 1 GenuineIntel 586 processor
# 1 16450 serial port
# 2 16550A serial ports
# 1 post-1991 82077 floppy controller
# 1 1.44M floppy drive
# 1 vga+ graphics device
# 1 keyboard
# 2 ethernet interfaces
#   eth0: 3Com 3c595 Vortex 100baseTX
#   eth2: 3c509
# 1 SCSI tape 1 SCSI cdrom 2 SCSI disks
#   QUANTUM  EMPIRE_1080S
#   HP       C3725S
#   ARCHIVE  VIPER 150  21531
#   TOSHIBA  CD-ROM XM-3501TA
# PCI bus devices:
#    SCSI storage controller: NCR 53c810 (rev 2).
#    Ethernet controller: 3Com 3C595 100bTX (rev 0).
#    VGA compatible device: S3 Inc. Vision 964-P (rev 0).
#    IDE interface: Intel 82371 Triton PIIX (rev 2).
#    ISA bridge: Intel 82371 Triton PIIX (rev 2).
#    Host bridge: Intel 82437 (rev 2).

open(FD, "dmesg|") || die "no dmesg";
while (<FD>) {
	@_ = split;
	if (/^Memory:/) {
		$_[1] =~ s|.*/||;
		$_[1] =~ s|k$||;
		$_[1] /= 1024;
		$mem = "Main memory size: $_[1] Mbytes\n";
	} elsif (/^tty/) {
		$ttys{$_[$#_]}++;
	} elsif (/^Floppy/) {
		$floppy{$_[$#_]}++;
	} elsif (/^FDC /) {
		s/.*is a //;
		chop;
		$fdc{$_}++;
	} elsif (/^scsi : detected/) {
		$scsi = $_;
	} elsif (/^eth\d.* at /) {
		s/\s*at .*//;
		push(@eth, $_);
	} 
}
open(FD, "/proc/cpuinfo");
while (<FD>) {
	@_ = split;
	if (/cpu/) {
		$cpu = $_[$#_];
	}
	if (/vendor/) {
		$cpus{"$_[$#_] $cpu"}++;
	}
}
open(FD, "/proc/ioports");
while (<FD>) {
	if (/kbd/ || /keyboard/) {
		$kbd++;
	} elsif (/vga/) {
		@_ = split;
		$graphics{$_[$#_]}++;
	}
}

print $mem if (defined $mem);
foreach $key (keys %cpus) {
	print "$cpus{$key} $key processor";
	print $cpus{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %ttys) {
	print "$ttys{$key} $key serial port";
	print $ttys{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %fdc) {
	print "$fdc{$key} $key floppy controller";
	print $fdc{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %floppy) {
	print "$floppy{$key} $key floppy drive";
	print $floppy{$key} > 1 ? "s\n" : "\n";
}
foreach $key (keys %graphics) {
	print "$graphics{$key} $key graphics device";
	print $graphics{$key} > 1 ? "s\n" : "\n";
}
if (defined $kbd) {
	print "$kbd keyboard";
	print $kbd > 1 ? "s\n" : "\n";
}
if ($#eth > -1) {
	$n = $#eth + 1;
	print "$n ethernet interface";
	print $n > 1 ? "s\n" : "\n";
	foreach $eth (@eth) {
		print "  $eth";
	}
}
if (defined $scsi) {
	$scsi =~ s/.*detected //;
	$scsi =~ s/ total.//;
	print $scsi;
	open(FD, "/proc/scsi/scsi");
	$_ = <FD>;
	while (<FD>) {
		next unless /Vendor/;
		s/.*Vendor:\s*//;
		s/\s*Rev:.*//;
		s/Model:\s*//;
		print "  $_";
	}
}

open(FD, "/proc/pci");
$done = 0;
while (<FD>) {
	if (/^\s*Bus/) {
		if ($done == 0) {
			print "PCI bus devices:\n";
			$done++;
		}
		$_ = <FD>;
		print;
	}
}

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 19:12 hardware independent hinv Larry McVoy
  1997-05-28 19:12 ` Larry McVoy
@ 1997-05-28 19:19 ` Mike Shaver
  1997-05-28 19:19   ` Mike Shaver
  1 sibling, 1 reply; 17+ messages in thread
From: Mike Shaver @ 1997-05-28 19:19 UTC (permalink / raw)
  To: Larry McVoy; +Cc: ariel, linux, olson, scotth, swmgr, breyer

Thus spake Larry McVoy:
> : Just forwarding since it sounds someone hopes that Linux/MIPS
> : will some day have a HW independent hinv... - Ariel
> 
> Here's my first pass at it.  It certainly isn't complete but it is a 
> start.  We could evolve Linux' /proc to fully handle this.

What about a perl (SGI::?)Hinv:: module that would get hinv data from the
appropriate source?  I've been thinking about a clean perl interface
to /proc for a while, and I assume the data's there for the taking on
the Irixen as well, if you know where to look.  (open("hinv|") is all
else fails.)

Mike

-- 
#> Mike Shaver (shaver@ingenia.com) Ingenia Communications Corporation 
#>                 Ignore the man behind the curtain.                  
#>                                                                     
#> "And then I realized that it never should have worked in the first  
#>  place.  Thus, it would not work again until rewritten." --- Anon.  

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 19:19 ` Mike Shaver
@ 1997-05-28 19:19   ` Mike Shaver
  0 siblings, 0 replies; 17+ messages in thread
From: Mike Shaver @ 1997-05-28 19:19 UTC (permalink / raw)
  To: Larry McVoy; +Cc: ariel, linux, olson, scotth, swmgr, breyer

Thus spake Larry McVoy:
> : Just forwarding since it sounds someone hopes that Linux/MIPS
> : will some day have a HW independent hinv... - Ariel
> 
> Here's my first pass at it.  It certainly isn't complete but it is a 
> start.  We could evolve Linux' /proc to fully handle this.

What about a perl (SGI::?)Hinv:: module that would get hinv data from the
appropriate source?  I've been thinking about a clean perl interface
to /proc for a while, and I assume the data's there for the taking on
the Irixen as well, if you know where to look.  (open("hinv|") is all
else fails.)

Mike

-- 
#> Mike Shaver (shaver@ingenia.com) Ingenia Communications Corporation 
#>                 Ignore the man behind the curtain.                  
#>                                                                     
#> "And then I realized that it never should have worked in the first  
#>  place.  Thus, it would not work again until rewritten." --- Anon.  

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 18:18     ` David S. Miller
@ 1997-05-28 19:49       ` Miguel de Icaza
  0 siblings, 0 replies; 17+ messages in thread
From: Miguel de Icaza @ 1997-05-28 19:49 UTC (permalink / raw)
  To: davem; +Cc: shaver, ariel, linux


> The solaris dynamic linker does this at run time, it collapses
> together only the functions/data which your program could ever
> reference into one contiguous chunk of pages.  

Mhm, you mean, it moves the functions and data around?  This looks
interesting.  How does the Solaris linker find this out?

On the presentation at Usenix, they used feed the profiling
information into this executable-reorganizer program and the output
was this "optimized" executable.

Actually, I just found the program, from the cord(1) man page: 

     In the example below, a program foo is run through pixie(1) which
     generates foo.pixie.  The instrumented executable is run and prof is used
     to produce a feedback file from the profiled data.  Cord is then used to
     reorder the procedures in foo, generating a new binary foo.cord.

            pixie foo
            foo.pixie
            prof -pixie -feedback foo
            cord foo foo.fb

Pretty cool.

In the paper they presented some other optimizations to dynamically
linked programs.  Let me see if I can get the paper from the Usenix
site.

Cheers,
Miguel.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
@ 1997-05-29  2:26 Dave Olson
  1997-05-29  2:26 ` Dave Olson
  1997-05-30  9:56 ` Raj Mathur
  0 siblings, 2 replies; 17+ messages in thread
From: Dave Olson @ 1997-05-29  2:26 UTC (permalink / raw)
  To: Larry McVoy, Mike Shaver; +Cc: breyer, swmgr, scotth, linux, ariel

The info definitely isn't in /proc on irix.

Doesn't dmesg have the problem on linux that it has on Sun systems; that is,
it only works until enough kernel printfs have happened that the circular
buffer wraps?

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-29  2:26 Dave Olson
@ 1997-05-29  2:26 ` Dave Olson
  1997-05-30  9:56 ` Raj Mathur
  1 sibling, 0 replies; 17+ messages in thread
From: Dave Olson @ 1997-05-29  2:26 UTC (permalink / raw)
  To: Larry McVoy, Mike Shaver; +Cc: breyer, swmgr, scotth, linux, ariel

The info definitely isn't in /proc on irix.

Doesn't dmesg have the problem on linux that it has on Sun systems; that is,
it only works until enough kernel printfs have happened that the circular
buffer wraps?

Dave Olson, Silicon Graphics   Guru and busybody at large
http://reality.sgi.com/olson   olson@sgi.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-28 17:42   ` Miguel de Icaza
  1997-05-28 18:18     ` David S. Miller
@ 1997-05-30  7:14     ` Martin Knoblauch
  1 sibling, 0 replies; 17+ messages in thread
From: Martin Knoblauch @ 1997-05-30  7:14 UTC (permalink / raw)
  To: Miguel de Icaza; +Cc: shaver, ariel, linux

Miguel de Icaza wrote:
> 
> 
> There was this lovely tool that showed the memory map, with the
> details on the usage.  You could click on say, Emacs, and get a map of
> where Emacs pages were, and it seemed like it could read the symbol
> table information from the process as well (it showed: "No symbols for
> this page").
> 

 That would be "gmemusage" (in a former life "bloatview", with
some really cool desktop icons. Maybe for Linux, we could replace
the pigs with a real fat penguin :-).

> I also saw some printed slides on some program that seemed to let you
> move related functions together in the binary to avoid page faults.
> Can not really tell, as they were flipping trough them really quick.
> 

 That tool is "cord". It uses feedback from prof/pixie experiments.

Martin
-- 
Check out the DevForum 97  !!!! (http://www.sgi.com/Forum97/)
  If you miss it, you'll never forgive yourself. Neither will I :-)
+---------------------------------+-----------------------------------+
|Martin Knoblauch                 | Silicon Graphics GmbH             |
|Manager Technical Marketing      | Am Hochacker 3 - Technopark       |
|Silicon Graphics Computer Systems| D-85630 Grasbrunn-Neukeferloh, FRG|
|---------------------------------| Phone: (+int) 89 46108-179 or -0  |
|http://reality.sgi.com/knobi     | Fax:   (+int) 89 46107-179        |
+---------------------------------+-----------------------------------+
|e-mail: <knobi@munich.sgi.com>   | VM: 6-333-8197 | M/S: IDE-3150    |
+---------------------------------------------------------------------+

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-29  2:26 Dave Olson
  1997-05-29  2:26 ` Dave Olson
@ 1997-05-30  9:56 ` Raj Mathur
  1997-05-30  9:56   ` Raj Mathur
  1 sibling, 1 reply; 17+ messages in thread
From: Raj Mathur @ 1997-05-30  9:56 UTC (permalink / raw)
  To: Dave Olson; +Cc: linux

>>>>> "Dave" == Dave Olson <olson@anchor.engr.sgi.com> writes:

    Dave> The info definitely isn't in /proc on irix.  Doesn't dmesg
    Dave> have the problem on linux that it has on Sun systems; that
    Dave> is, it only works until enough kernel printfs have happened
    Dave> that the circular buffer wraps?

Yes, just define a printer, (don't need to actually connect one) and
lpr a file. End Of Dmesg(tm) usable output: all you'll get now is "lp:
out of paper" messages.

-- Raju
--
       Raj Mathur / Web Technical Support / Silicon Graphics / New Delhi
         +91-11-6216324/25, 6211354/55   /    raju@sgi.com  / 7228
            http://reality.sgi.com/raju / It is the Mind that Moves
           PGP: F2 D4 4A 21 27 B0 63 FF | Not necessarily speaking
                15 97 9D AE 9D 40 BC B8 | for Silicon Graphics

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: hardware independent hinv
  1997-05-30  9:56 ` Raj Mathur
@ 1997-05-30  9:56   ` Raj Mathur
  0 siblings, 0 replies; 17+ messages in thread
From: Raj Mathur @ 1997-05-30  9:56 UTC (permalink / raw)
  To: Dave Olson; +Cc: linux

>>>>> "Dave" == Dave Olson <olson@anchor.engr.sgi.com> writes:

    Dave> The info definitely isn't in /proc on irix.  Doesn't dmesg
    Dave> have the problem on linux that it has on Sun systems; that
    Dave> is, it only works until enough kernel printfs have happened
    Dave> that the circular buffer wraps?

Yes, just define a printer, (don't need to actually connect one) and
lpr a file. End Of Dmesg(tm) usable output: all you'll get now is "lp:
out of paper" messages.

-- Raju
--
       Raj Mathur / Web Technical Support / Silicon Graphics / New Delhi
         +91-11-6216324/25, 6211354/55   /    raju@sgi.com  / 7228
            http://reality.sgi.com/raju / It is the Mind that Moves
           PGP: F2 D4 4A 21 27 B0 63 FF | Not necessarily speaking
                15 97 9D AE 9D 40 BC B8 | for Silicon Graphics

^ permalink raw reply	[flat|nested] 17+ messages in thread

* My first project on the Indy.
  1997-05-28 16:03 ` Ralf Baechle
@ 1997-06-12  1:10   ` Miguel de Icaza
  0 siblings, 0 replies; 17+ messages in thread
From: Miguel de Icaza @ 1997-06-12  1:10 UTC (permalink / raw)
  To: linux


Hello guys,

   I got my Indy up and running now.  My very first project would be
to work on the Linux boot loader.

   I just happily found that there are two disks on the machine, so I
will smash the second one with my boot loader tests.  

   Now, where can I find information about the boot process on the
SGI?  I want to know what does the PROM load from the disk (I bet it
loads the first sectors and jumps to them, right?), and where the code
is loaded.  

   I happilly found that a program called Insight Library comes with
the system and has a lot of information on using the PROM, which is
what I am reading now to find out any debugging facilities in there.

   Some time ago, (maybe Larry or Ariel) mentioned that it would be
possible to get me a copy of the boot loader for Irix.

Cheers,
Miguel.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~1997-06-12  1:22 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1997-05-28 15:17 hardware independent hinv Ariel Faigon
1997-05-28 15:17 ` Ariel Faigon
1997-05-28 15:35 ` Mike Shaver
1997-05-28 17:42   ` Miguel de Icaza
1997-05-28 18:18     ` David S. Miller
1997-05-28 19:49       ` Miguel de Icaza
1997-05-30  7:14     ` Martin Knoblauch
1997-05-28 16:03 ` Ralf Baechle
1997-06-12  1:10   ` My first project on the Indy Miguel de Icaza
  -- strict thread matches above, loose matches on Subject: below --
1997-05-28 19:12 hardware independent hinv Larry McVoy
1997-05-28 19:12 ` Larry McVoy
1997-05-28 19:19 ` Mike Shaver
1997-05-28 19:19   ` Mike Shaver
1997-05-29  2:26 Dave Olson
1997-05-29  2:26 ` Dave Olson
1997-05-30  9:56 ` Raj Mathur
1997-05-30  9:56   ` Raj Mathur

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox