[prev in list] [next in list] [prev in thread] [next in thread]
List: reiserfs-devel
Subject: (reiserfs) Re: Status of debugging
From: Hans Reiser <reiser () ricochet ! net>
Date: 1998-04-29 16:08:57
[Download RAW message or body]
James Youngman wrote:
>
> >>>>> "Hans" == Hans Reiser <reiser@ricochet.net> writes:
>
> Hans> Vladimir and Anatoly are getting killed by the lack of a
> Hans> kernel debugger.
>
> But one exists! There is a SPARC emulator that was recently
> announced (probably to comp.os.linux.announce) that includes hardware
> emulation. It is sophisticated enough to run the SPARC Linux
> kernel. You can use it to debug stuff apparently. I have never tried
> it myself.
>
> I couldn't find an announcement anywhere, but it might be the same
> program as on this web page:-
> http://www.cs.vu.nl/~leendert/simul.html
That web page was not it. I think what follows is it. I think I will
have Yura and Igor (Igor is our hardware resources guy in at the
institute) look into perhaps getting us access to a SPARC and installing
this simulator. (We don't have easy access to a SPARC, but maybe an old
one can be found somewhere cheap). Thanks much James.
Announcing the availability of Linux-on-SimICS,
a complete environment for booting and running unmodified
Linux 2.0.30 binaries on a system-level simulator
http://www.sics.se/simics/
SimICS is a combined instruction-set simulator (Sparc V8) and operating
system
emulator (SunOS 5.x) developed at the Swedish Institute of Computer
Science.
SimICS can simulate multiple processors (SMP), data and instruction
caches,
and devices sufficient accurately to boot and run operating systems
straight
from bootable disk partition dumps. It offers a fully "open" view of the
execution of essentially arbitrary workloads.
We are now releasing a version of SimICS (sun4m) capable of booting and
running an unmodified version of Linux 2.0.30 (Red Hat 4.2/Sparc),
complete
with Linux sources and binaries, and a version of GDB for symbolic
profiling
and debugging of arbitrary portions of Linux.
(And yes, when we say "unmodified" we mean just that. We downloaded the
Red
Hat distribution and installed it on a virtual sun4m workstation.)
Linux-on-SimICS will hopefully prove useful for operating system and
computer
architecture research. SimICS is also a useful tool for program
debugging and
performance analysis of software systems.
This is a first wide-audience distribution of Linux-on-SimICS, so we
value
your feedback.
Some highlights of the package:
* Support for system-level code. SimICS supports operating system code,
including the (Sparc V8) trap model. You can thus port a toy or real
operating system to SimICS. There is support for adding your own
device
simulators, MMU, and physical address mapping to construct a computer
of
your choice. This distribution includes prepared files, scripts,
source,
and binaries for a Linux installation. SimICS can also boot and run
Solaris
2.6, but for obvious reasons we cannot redistribute an installation.
* "Virtual workstation". SimICS can simulate network devices to the
point of
allowing a booted operating system to appear on your local network as
an
ordinary (albeit slow) workstation. You can telnet to it, or run a
web
server and profile file system activity, etc.
* Multipro support. SimICS can simulate one or more CPUs (shared-memory
MP).
* Instruction and Data cache support. SimICS will model caches (with
cache
lines that are multiples of 32 bytes), using either included cache
simulators or a user-developed model.
* Exact execution profiling. SimICS counts every from-to branch pair,
and
can either provide an execution profile view (for each instruction a
frequency count), or answer queries on branches (such as how many
branches
were taken *into* a particular region, and from where). Note that
this
profiling works for completely arbitrary code, including function
pointer
indirections and/or run-time generated code.
* Performance profiling. Provides profiling of cache and TLB behavior
(allocating misses to individual instructions), including interactive
definition of cache (number of lines, associativity, and line size)
and TLB
size.
* Debugging. Includes several debugging features, such as support for
arbitrary memory breakpoints (any combination of read/write/execute
to any
set of memory addresses), breakpoints in "time", on control register
access, on device access, etc.
* Is fully deterministic, facilitating bug hunting. When running on the
network in "virtual workstation" mode, network traffic can be
recorded
allowing a user to re-create the execution off-line.
* Is fully interactive, with a command-line interface, and can be run
from
scripts.
* Includes a modified version of GDB 4.16, thus allowing symbolic
debugging
of parallel programs, multiprogrammed workloads, or operating
systems.
"http://www.sics.se/simics/gdb.html" contains some examples.
* Extensions manual. There are several ways to add features or tailor
SimICS in various ways. The documentation is (more or less) grouped
in
a single document.
* Fast execution (for a simulator). For the SPECint95 benchmark suite,
slowdown is in the range of 26-40 with no cache/TLB modelling, and in
the
range 31-108 when simulating a "SuperSparc processor" (64 entry TLB,
16K
data cache, 20K instruction cache).
* SimICS can also emulate a subset of the Solaris 2.x ABI in "unix
emulation
mode", allowing it to directly run many Solaris 2.x binaries,
regardless of
the original source code or language, including debugging/profiling
dynamically linked or run-time generated code. In this mode it
supports
running multiple unix processes (workloads) in the same environment,
including support for fork(), exec(), and arbitrary mmap(). The
support is
sufficient to run the full Splash2 and SPECint95 suites.
SimICS is a research prototype. Feedback, bug reports, questions, and
other
responses are most welcome. We will try to meet any (reasonable)
requests for
fixes and features.
Please refer to the SimICS web site for more details and future updates.
Send bug reports and comments to "simics-bug@sics.se".
SimICS currently only runs on Solaris 2.x (Sparc) platforms. To run
Linux-on-SimICS, you will need access to a Solaris 2.x (Sparc)
workstation
with a fair amount of memory (200M to boot Linux) and disk (also around
200M).
And the faster host the better---access to an Ultra workstation is
highly
recommended.
SimICS is pronounced "sim-ix".
--
Peter Magnusson
psm@sics.se http://www.sics.se/~psm
Swedish Institute of Computer Science
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic