From: Simon Marchi <simon.marchi@ericsson.com>
To: Pedro Alves <palves@redhat.com>, <gdb-patches@sourceware.org>
Subject: Re: [PATCH v3 00/23] All-stop on top of non-stop
Date: Mon, 20 Apr 2015 17:35:00 -0000 [thread overview]
Message-ID: <553538F6.90201@ericsson.com> (raw)
In-Reply-To: <1429267521-21047-1-git-send-email-palves@redhat.com>
On 15-04-17 06:45 AM, Pedro Alves wrote:
> This is v3 of the series first posted at:
> https://sourceware.org/ml/gdb-patches/2015-04/msg00073.html
> v2 here:
> https://sourceware.org/ml/gdb-patches/2015-04/msg00198.html
>
> Compared to v2, this version:
>
> - Fixes problems on software single-step targets, first exposed by
> Yao's ARM testing.
>
> - Makes the per-inferior displaced stepping queue work correctly
> again. v1 and v2 has borked that.
>
> - General cleanups.
>
> A few patches in v2 were pushed to master meanwhile. This one in v2
> was dropped in v3:
>
> https://sourceware.org/ml/gdb-patches/2015-04/msg00207.html
> PPC64: symbol-file + exec-file results in broken displaced stepping
>
> because we now don't trip on that issue anymore, since this went in:
>
> https://sourceware.org/ml/gdb-patches/2015-04/msg00341.html
> [PATCH][AT_ENTRY version] PR13858 - Can't do displaced stepping with no symbols
>
> The bug is still present, but is now latent, so I'll probably resend
> that one out separately at some point.
>
> I tried to mention the differences to v2 in each patch that had
> changes, if any (scroll past ChangeLog).
>
> Documentation changes have not changed, and have already been
> approved.
>
> Note most of these patches can go in without the final bits that
> actually do all-stop-on-top-of-non-stop, as they fix problems that
> exist e.g., with "set non-stop on" or "set displaced-stepping on" too.
>
> I've (force) pushed this to users/palves/all-stop-non-stop for review
> and testing convenience.
>
> Tested on:
>
> x86-64 GNU/Linux
> x86-64 GNU/Linux on top of software single-step branch
> PPC64 GNU/Linux
> S/390 GNU/Linux
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Series-intro proper follows:
>
> This series implements user-visible all-stop mode running with the
> target_ops backend always in non-stop mode. This is a stepping stone
> towards finer-grained control of threads, being able to do interesting
> things like inferior and thread groups/sets (itsets), associating
> groups with breakpoints (which threads cause a stop, which threads are
> implicitly paused when a breakpoint triggers), etc. From the user's
> perspective, all-stop mode is really just a special case of being able
> to stop and resume specific sets of threads, so it makes sense to do
> this step first.
>
> After this series, even in all-stop mode ("set non-stop off", the
> default) the target is no longer in charge of stopping all threads
> before reporting an event to the core -- the core takes care of it
> when it sees fit. For example, when "next"- or "step"-ing, we can
> avoid stopping and resuming all threads at each internal single-step,
> and instead only stop all threads when we're about to present the stop
> to the user.
>
> In order to get there, the series teaches GDB to do non-stop mode even
> without displaced stepping (stop all threads, step over breakpoint,
> restart threads), as displaced stepping isn't implemented everywhere,
> and doesn't work in some scenarios (as in, we can't use it, not that
> it's buggy).
>
> And then it fixes all testsuite regressions (on native x86-64, ppc64
> and s390 GNU/Linux) this new mode causes, compared to all-stop ("set
> non-stop off") with the target backend in all-stop mode too (i.e., the
> current default). Making "target remote" work in always non-stop mode
> is deferred for later (this will be even more useful for remote as the
> all-stop mode RSP variant can't really do asynchronous debugging).
>
> Tested on x86_64 Fedora 20, native, with and without "set displaced
> off", and with and without "maint set target-non-stop on"; and also
> against gdbserver. Tested on x86-64 GNU/Linux native on top of x86
> software single-step branch. Tested on PPC64 Fedora 18. Tested on
> S/390 RHEL 7.1.
>
> Pedro Alves (17):
> Fix and test "checkpoint" in non-stop mode
> Change adjust_pc_after_break's prototype
> remote.c/all-stop: Implement TARGET_WAITKIND_NO_RESUMED and
> TARGET_WNOHANG
> Make thread_still_needs_step_over consider stepping_over_watchpoint
> too
> Embed the pending step-over chain in thread_info objects
> Use keep_going in proceed and start_step_over too
> Misc switch_back_to_stepped_thread cleanups
> Factor out code to re-resume stepped thread
> Teach non-stop to do in-line step-overs (stop all, step, restart)
> Implement all-stop on top of a target running non-stop mode
> Fix signal-while-stepping-over-bp-other-thread.exp on targets always
> in non-stop
> Fix interrupt-noterm.exp on targets always in non-stop
> Fix step-over-{trips-on-watchpoint|lands-on-breakpoint}.exp race
> Disable displaced stepping if trying it fails
> PPC64: Fix gdb.arch/ppc64-atomic-inst.exp with displaced stepping
> S/390: displaced stepping and PC-relative RIL-b/RIL-c instructions
> native Linux: enable always non-stop by default
>
> gdb/NEWS | 6 +
> gdb/breakpoint.c | 11 +-
> gdb/darwin-nat.c | 6 +-
> gdb/doc/gdb.texinfo | 24 +
> gdb/gdbarch.h | 6 +-
> gdb/gdbarch.sh | 4 +
> gdb/gdbthread.h | 60 +-
> gdb/gnu-nat.c | 7 -
> gdb/inf-ptrace.c | 6 +-
> gdb/infcmd.c | 6 +-
> gdb/infrun.c | 2290 +++++++++++++++-----
> gdb/infrun.h | 7 +
> gdb/linux-nat.c | 33 +-
> gdb/monitor.c | 4 +-
> gdb/nto-procfs.c | 14 +-
> gdb/procfs.c | 4 +-
> gdb/remote-m32r-sdi.c | 6 +-
> gdb/remote-sim.c | 20 +-
> gdb/remote.c | 57 +-
> gdb/rs6000-tdep.c | 68 +-
> gdb/s390-linux-tdep.c | 115 +-
> gdb/target-delegates.c | 59 +
> gdb/target.c | 83 +
> gdb/target.h | 24 +-
> gdb/target/waitstatus.h | 5 +-
> gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp | 50 +-
> gdb/testsuite/gdb.base/checkpoint-ns.exp | 27 +
> gdb/testsuite/gdb.base/checkpoint.exp | 31 +-
> gdb/testsuite/gdb.base/valgrind-disp-step.c | 32 +
> gdb/testsuite/gdb.base/valgrind-disp-step.exp | 131 ++
> .../signal-while-stepping-over-bp-other-thread.exp | 2 +-
> .../gdb.threads/step-over-lands-on-breakpoint.c | 17 +-
> .../gdb.threads/step-over-lands-on-breakpoint.exp | 6 +-
> .../gdb.threads/step-over-trips-on-watchpoint.c | 17 +-
> .../gdb.threads/step-over-trips-on-watchpoint.exp | 9 +-
> gdb/thread.c | 197 +-
> gdb/windows-nat.c | 6 +-
> 37 files changed, 2741 insertions(+), 709 deletions(-)
> create mode 100644 gdb/testsuite/gdb.base/checkpoint-ns.exp
> create mode 100644 gdb/testsuite/gdb.base/valgrind-disp-step.c
> create mode 100644 gdb/testsuite/gdb.base/valgrind-disp-step.exp
FYI, I ran the Eclipse CDT testsuite using this branch and it's all green. :)
Simon
next prev parent reply other threads:[~2015-04-20 17:35 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-17 10:47 Pedro Alves
2015-04-17 10:45 ` [PATCH v3 08/17] Factor out code to re-resume stepped thread Pedro Alves
2015-04-17 10:45 ` [PATCH v3 15/17] PPC64: Fix gdb.arch/ppc64-atomic-inst.exp with displaced stepping Pedro Alves
2015-04-21 11:21 ` Yao Qi
2015-04-22 20:04 ` Pedro Alves
2015-04-17 10:45 ` [PATCH v3 03/17] remote.c/all-stop: Implement TARGET_WAITKIND_NO_RESUMED and TARGET_WNOHANG Pedro Alves
2015-04-17 10:45 ` [PATCH v3 13/17] Fix step-over-{trips-on-watchpoint|lands-on-breakpoint}.exp race Pedro Alves
2015-04-17 10:45 ` [PATCH v3 06/17] Use keep_going in proceed and start_step_over too Pedro Alves
2015-04-22 5:09 ` Doug Evans
2015-04-22 22:22 ` Pedro Alves
2015-04-17 10:45 ` [PATCH v3 05/17] Embed the pending step-over chain in thread_info objects Pedro Alves
2015-04-21 8:28 ` Yao Qi
2015-04-22 20:14 ` Pedro Alves
2015-04-21 9:53 ` Yao Qi
2015-04-22 19:07 ` Pedro Alves
2015-04-22 4:25 ` Doug Evans
2015-04-22 22:19 ` Pedro Alves
2015-04-17 10:45 ` [PATCH v3 02/17] Change adjust_pc_after_break's prototype Pedro Alves
2015-04-17 10:45 ` [PATCH v3 11/17] Fix signal-while-stepping-over-bp-other-thread.exp on targets always in non-stop Pedro Alves
2015-04-17 10:45 ` [PATCH v3 04/17] Make thread_still_needs_step_over consider stepping_over_watchpoint too Pedro Alves
2015-04-17 10:47 ` [PATCH v3 01/17] Fix and test "checkpoint" in non-stop mode Pedro Alves
2015-04-21 2:36 ` Doug Evans
2015-04-22 17:48 ` Pedro Alves
2015-04-28 18:18 ` Doug Evans
2015-04-29 4:56 ` Doug Evans
2015-05-19 18:08 ` Pedro Alves
2015-04-17 10:47 ` [PATCH v3 07/17] Misc switch_back_to_stepped_thread cleanups Pedro Alves
2015-04-21 9:50 ` Yao Qi
2015-04-22 20:04 ` Pedro Alves
2015-04-22 5:23 ` Doug Evans
2015-04-22 20:05 ` Pedro Alves
2015-04-28 20:28 ` Doug Evans
2015-04-17 10:47 ` [PATCH v3 17/17] native Linux: enable always non-stop by default Pedro Alves
2015-04-17 10:52 ` [PATCH v3 09/17] Teach non-stop to do in-line step-overs (stop all, step, restart) Pedro Alves
2015-04-17 11:01 ` Pedro Alves
2015-04-21 15:01 ` Yao Qi
2015-04-22 20:03 ` Pedro Alves
2015-04-24 9:06 ` Yao Qi
2015-04-27 20:17 ` Doug Evans
2015-05-19 18:09 ` Pedro Alves
2015-05-19 18:49 ` Pedro Alves
2015-04-17 10:52 ` [PATCH v3 12/17] Fix interrupt-noterm.exp on targets always in non-stop Pedro Alves
2015-04-21 11:40 ` Yao Qi
2015-04-22 20:03 ` Pedro Alves
2015-04-17 10:56 ` [PATCH v3 14/17] Disable displaced stepping if trying it fails Pedro Alves
2015-04-17 11:06 ` [PATCH v3 16/17] S/390: displaced stepping and PC-relative RIL-b/RIL-c instructions Pedro Alves
2015-04-17 11:38 ` [PATCH v3 10/17] Implement all-stop on top of a target running non-stop mode Pedro Alves
2015-04-21 11:09 ` Yao Qi
2015-04-22 20:16 ` Pedro Alves
2015-04-24 7:39 ` Yao Qi
2015-05-19 18:08 ` Pedro Alves
2015-05-21 9:17 ` Yao Qi
2015-04-20 12:02 ` [PATCH v3 00/23] All-stop on top of non-stop Yao Qi
2015-04-20 16:54 ` Sergio Durigan Junior
[not found] ` <553526D0.9030802@redhat.com>
2015-04-21 7:48 ` Yao Qi
2015-04-21 15:05 ` Yao Qi
2015-04-22 22:27 ` Pedro Alves
2015-04-20 17:35 ` Simon Marchi [this message]
2015-05-19 18:14 ` 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=553538F6.90201@ericsson.com \
--to=simon.marchi@ericsson.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.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