public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 0/8] Linux: starvation avoidance in non-stop mode
Date: Fri, 26 Dec 2014 20:31:00 -0000	[thread overview]
Message-ID: <1419625871-28848-1-git-send-email-palves@redhat.com> (raw)

I've been working on reimplementing all-stop behavior against a target
backend working in non-stop mode.  Running the testsuite against that
shows a few regressions related to thread starvation.  The Linux
backends (gdb and gdbserver) already have logic in place to avoid
that, but it's only currently used when the backend is in all-stop
mode.  This series fixes that work in non-stop too, and further
improves it.

As a result, the all-stop and non-stop code paths in the backends are
further merged.  Also the native and gdbserver backends end up a
little bit more similar.  Both good things on their own.

Tested on x86_64 Fedora 20, native and gdbserver.

Pedro Alves (8):
  gdb.threads/{siginfo-thread.c,watchthreads-reorder.c,ia64-sigill.c}
    races with GDB
  watch_thread_num.exp and targets with fairer event reporting
  cleanup and speed up (software_)breakpoint_inserted_here_p
  linux-nat.c: clean up pending status checking and resuming LWPs
  linux-nat.c: always mark execing LWP as resumed
  linux-nat.c: better starvation avoidance, handle non-stop mode too
  [gdbserver] linux-low.c: better starvation avoidance, handle non-stop
    mode too
  add non-stop test that stresses thread starvation issues

 gdb/breakpoint.c                                   |  83 ++-
 gdb/breakpoint.h                                   |   5 +
 gdb/gdbserver/linux-low.c                          | 707 +++++++++++---------
 gdb/gdbserver/linux-low.h                          |  29 +-
 gdb/gdbserver/linux-x86-low.c                      |   2 +-
 gdb/gdbserver/mem-break.c                          |  34 +
 gdb/gdbserver/mem-break.h                          |  10 +
 gdb/gdbserver/target.h                             |  10 -
 gdb/gdbserver/tracepoint.c                         |   5 -
 gdb/linux-nat.c                                    | 734 ++++++++++-----------
 gdb/linux-nat.h                                    |  31 +-
 gdb/testsuite/gdb.base/annota1.exp                 |   9 +-
 gdb/testsuite/gdb.base/watch_thread_num.c          |  21 +-
 gdb/testsuite/gdb.base/watch_thread_num.exp        |  40 +-
 gdb/testsuite/gdb.threads/ia64-sigill.c            |  11 +
 gdb/testsuite/gdb.threads/non-stop-fair-events.c   |  84 +++
 gdb/testsuite/gdb.threads/non-stop-fair-events.exp | 161 +++++
 gdb/testsuite/gdb.threads/siginfo-threads.c        |  13 +
 gdb/testsuite/gdb.threads/watchthreads-reorder.c   |  13 +
 gdb/x86-linux-nat.c                                |   2 +-
 20 files changed, 1221 insertions(+), 783 deletions(-)
 create mode 100644 gdb/testsuite/gdb.threads/non-stop-fair-events.c
 create mode 100644 gdb/testsuite/gdb.threads/non-stop-fair-events.exp

-- 
1.9.3

             reply	other threads:[~2014-12-26 20:31 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-26 20:31 Pedro Alves [this message]
2014-12-26 20:31 ` [PATCH 2/8] watch_thread_num.exp and targets with fairer event reporting Pedro Alves
2014-12-26 20:31 ` [PATCH 1/8] gdb.threads/{siginfo-thread.c,watchthreads-reorder.c,ia64-sigill.c} races with GDB Pedro Alves
2015-01-06  6:20   ` Yao Qi
2014-12-26 20:31 ` [PATCH 3/8] cleanup and speed up (software_)breakpoint_inserted_here_p Pedro Alves
2014-12-26 20:32 ` [PATCH 4/8] linux-nat.c: clean up pending status checking and resuming LWPs Pedro Alves
2015-01-06  8:12   ` Yao Qi
2015-01-07 13:22     ` Pedro Alves
2015-01-07 14:10       ` Yao Qi
2014-12-26 20:32 ` [PATCH 7/8] [gdbserver] linux-low.c: better starvation avoidance, handle non-stop mode too Pedro Alves
2014-12-26 20:32 ` [PATCH 6/8] linux-nat.c: " Pedro Alves
2015-01-07  7:06   ` Yao Qi
2015-01-07 13:22     ` Pedro Alves
2015-01-07 14:08       ` Yao Qi
2015-01-07 14:36         ` Pedro Alves
2014-12-26 20:32 ` [PATCH 8/8] add non-stop test that stresses thread starvation issues Pedro Alves
2015-04-02 14:53   ` Yao Qi
2015-04-06 11:26     ` Pedro Alves
2015-04-07 10:10       ` Yao Qi
2015-04-07 10:22         ` Pedro Alves
2015-04-07 10:31           ` Yao Qi
2014-12-26 20:32 ` [PATCH 5/8] linux-nat.c: always mark execing LWP as resumed Pedro Alves
2015-01-09 15:07 ` [PATCH 0/8] Linux: starvation avoidance in non-stop mode 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=1419625871-28848-1-git-send-email-palves@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).