[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