This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/8] Linux: starvation avoidance in non-stop mode
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 26 Dec 2014 20:31:03 +0000
- Subject: [PATCH 0/8] Linux: starvation avoidance in non-stop mode
- Authentication-results: sourceware.org; auth=none
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