Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: gdb-patches@sourceware.org
Cc: Stan Shebs <stanshebs@earthlink.net>
Subject: Re: [PATCH, gdbsim] Avoid silly crash when no binary is loaded
Date: Thu, 20 Jun 2013 22:00:00 -0000	[thread overview]
Message-ID: <201306201733.31043.vapier@gentoo.org> (raw)
In-Reply-To: <51C369CF.8070102@earthlink.net>

[-- Attachment #1: Type: Text/Plain, Size: 3848 bytes --]

On Thursday 20 June 2013 16:45:03 Stan Shebs wrote:
> The "exec creates the simulation" model is the original one, introduced
> by Steve Chamberlain in 1992 or so.  It actually predates my time at
> Cygnus, so I don't have any direct knowledge of the decision process,
> but I remember having to consider how to keep sims from pre-allocating a
> too-large address space for the hosts of the time; using the exec to
> size memory was a convenient way to ensure enough space was allocated,
> and avoided having to come up with a fancy allocate-on-demand scheme
> (which could have been a problem for simulation speed, seems quaint now
> but was also a concern at the time).

you've shown your hand!  my knowledge of the sim is really only from reading 
the code and a bit of the mailing list.  i started hacking around ~Jan 2010, 
so i have no historical background which sometimes would be useful.  without 
any real documents or design info, i can only at best infer.  at least the 
files in common/ tend to be decently documented, so if you read the various 
headers enough, you can start to piece it together.  but maybe i'll hit you up 
with random questions :).

> > now, when you talk about the other environments (like the virtual or
> > user), what you want makes a bit more sense as there's not a whole lot
> > you could reasonably do.  but i don't think we should head in a
> > direction that moves even farther away from what i desire above for the
> > operating environment. maybe there's some middle ground ?
> 
> At the risk of stealth trolling via Nth reply to a patch :-) , I'd like
> to understand why we're continuing to maintain our own sims when qemu
> exists.  Qemu has infrastructure for all the device/board simulation, it
> supports a variety of architectures, and it gets a lot of use, including
> for GDB testing.
> 
> I'm not saying we should start deleting code en masse, but perhaps we
> can articulate a rule for relying on qemu vs not, and then that informs
> us where to expend effort in our sources.

a fair point.  having ported both the GNU/sim and QEMU to support the Blackfin 
architecture, there is certainly overlap.  but i find their ultimate goals to 
be a bit at odds (or at least, how i perceive things).  personally, i find the 
level of tracing & gdb integration in the GNU/sim to be a lot better and 
stable than QEMU (just a mini example, but if you connect to QEMU's gdb 
backend, the SOB will eat a cpu because it sets the socket to nonblocking and 
then does read() in a loop).  the GNU/sim is also a much simpler design (QEMU 
really likes to segfault when something goes wrong) which lends itself to 
debugging.  certainly if i want speed or a "complete" Linux/user shim, i reach 
for QEMU.  but if i want to actually debug/trace some code, especially when it 
comes to something like u-boot or kernel testing, i reach for the GNU/sim.

as i've been trying to bring up the QEMU Blackfin/system port, i don't want to 
rewrite all the lovely device models i've already put together for the 
GNU/sim.  so been trying to ponder some way of architecting things so i can 
copy & paste the core model files between the two.  hopefully the QEMU peeps 
aren't as angry when it comes to HAL shims like the Linux kernel community.

fwiw, i wrote a paper with a friend of mine on the topic of simulation 
focusing with a GNU/sim focus at OSL a few years ago:
https://docs.google.com/document/d/1YE1ma7X-974-4GAcq1hg2Pom646yofRd6Fowol0BDC0/edit

i also did a presentation that broke down my experience between QEMU & the 
GNU/sim and some of the tradeoffs at LSM:
http://wh0rd.org/~vapier/lsm-2012-sim.pdf

i think i'll try and give those presentations again as OSL/LSM weren't exactly 
large.  maybe SCALE or something.  i'm just lazy :/.
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2013-06-20 21:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-18 21:09 Luis Machado
2013-06-19 11:43 ` Pedro Alves
2013-06-19 12:20   ` Luis Machado
2013-06-19 14:53     ` Pedro Alves
2013-06-19 15:20       ` Luis Machado
2013-06-20 13:39         ` Luis Machado
2013-06-20 17:50     ` Mike Frysinger
2013-06-20 18:34       ` Pedro Alves
2013-06-20 21:33       ` Stan Shebs
2013-06-20 22:00         ` Mike Frysinger [this message]
2013-06-21 10:58           ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201306201733.31043.vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=gdb-patches@sourceware.org \
    --cc=stanshebs@earthlink.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox