From: "Jakob Engblom" <jakob@virtutech.com>
To: "'Stan Shebs'" <stan@codesourcery.com>,
"'Michael Snyder'" <msnyder@vmware.com>
Cc: <gdb@sourceware.org>
Subject: RE: Tracepoint enhancements
Date: Wed, 05 Nov 2008 09:04:00 -0000 [thread overview]
Message-ID: <002601c93f25$5aeaffe0$10c0ffa0$@com> (raw)
In-Reply-To: <4910C062.4040404@codesourcery.com>
> > [...] a checkpoint
> > represents a machine state. If there are multiple machines,
> > that complicates the picture -- but basically gdb is saying
> > to the target "I want to be able to return to the state that
> > you are in *right now*".
> Hmm, that is a significant wrinkle to the execution history theory.
> Basically it's not possible to know reliably whether the execution state
> of one CPU comes sooner or later than the state of another CPU - their
> clocks can't be guaranteed to be sync'ed to a sub-instruction level.
> It's a little like a distributed version control system, where each
> repository has its own version numbers, and any ordering derives from
> explicit push/pull instructions. Each inferior can have a reliable
> execution history, but if you want to go back to state X on CPU 1, you
> either just affect the one inferior, or expect that other inferiors will
> go back to the closest available state in their histories.
This is true on most physical hardware, but it can often be worked around in
simulators. So I would strongly suggest letting the backend worry about that.
In a system such as Simics and other complete simulation solutions, this is
indeed feasible since you impose a certain semantics on the execution of the
simulated system.
Or imagine connecting to a cycle-by-cycle simulation or emulation solution such
as a HAPS or Palladium or ZeBu system -- such solutions can stop synchronously
on a single cycle. Also, on-chip trace is coming out that would be able to do
synchronized time-stamping of event from an entire SoC, exported over some
hardware debug port.
So while not always true, there are several cases where you can indeed have a
synchronized history and control over parallellism. All you need is to insert a
layer of indirection that converts parallel to some kind of known sequential
execution.
Best regards,
/jakob
_______________________________________________________
Jakob Engblom, PhD, Technical Marketing Manager
Virtutech Direct: +46 8 690 07 47
Drottningholmsvägen 14 Mobile: +46 709 242 646
11243 Stockholm Web: www.virtutech.com
Sweden
________________________________________________________
next prev parent reply other threads:[~2008-11-05 9:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-31 20:46 Stan Shebs
[not found] ` <490B6CEF.2000003@vmware.com>
2008-11-01 8:40 ` Vladimir Prus
2008-11-03 18:20 ` Michael Snyder
2008-11-04 21:17 ` Stan Shebs
2008-11-05 7:14 ` Vladimir Prus
[not found] ` <Pine.LNX.4.58.0811060523150.8468@vlab.hofr.at>
2008-11-06 18:19 ` Vladimir Prus
2008-11-03 6:38 ` Jakob Engblom
2008-11-03 18:27 ` Michael Snyder
2008-11-03 18:53 ` Jakob Engblom
2008-11-03 19:23 ` Michael Snyder
2008-11-04 14:00 ` Jakob Engblom
2008-11-04 21:37 ` Stan Shebs
2008-11-04 21:58 ` Michael Snyder
2008-11-05 9:04 ` Jakob Engblom [this message]
2008-11-03 9:12 ` Jeremy Bennett
2008-11-04 21:26 ` Stan Shebs
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='002601c93f25$5aeaffe0$10c0ffa0$@com' \
--to=jakob@virtutech.com \
--cc=gdb@sourceware.org \
--cc=msnyder@vmware.com \
--cc=stan@codesourcery.com \
/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