Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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