From: "Marcin Kościelnicki" <koriakin@0x04.net>
To: gdb-patches@sourceware.org
Subject: [PATCH 0/8] gdb/s390: Add regular and fast tracepoint support.
Date: Sun, 24 Jan 2016 12:12:00 -0000 [thread overview]
Message-ID: <1453637529-26972-1-git-send-email-koriakin@0x04.net> (raw)
This patchset adds support for regular and fast tracepoints on
s390-ibm-linux-gnu and s390x-ibm-linux-gnu. It depends on the following
yet-unlanded patches:
- https://sourceware.org/ml/gdb-patches/2016-01/msg00597.html (for 31-bit
fast tracepoint support)
- https://sourceware.org/ml/gdb-patches/2016-01/msg00596.html (just
a testsuite fix)
- https://sourceware.org/ml/gdb-patches/2016-01/msg00510.html (fixes
setting a breakpoint and a tracepoint on the same location)
Patches 1-5 add working regular tracepoint support, patches 6-7 add
working fast tracepoint support on top of that, and patch 8 makes fast
tracepoints use compiled agent expressions.
Patches 1 and 7 are in target-independent code, the remaining ones
are in s390-specific code.
It has been tested on s390-ibm-linux-gnu and s390x-ibm-linux-gnu on
a z13 machine (without vector extensions). The parts handling vector
extensions are untested. It has also been regression-tested on x86_64.
There are 2 test failures still left in gdb.trace:
- gdb.trace/unavailable.exp: print derived_whole has 4 failures on 64-bit
only. The same failure happens on x86_64, so it's unlikely to be
s390-specific.
- gdb.trace/mi-tsv-changed.exp: create delete modify: tvariable $tvar3
modified is an intermittent failure. It seems to be a race of some
kind - in the failing runs, gdb shows the same messages, but in
different order. I strongly suspect this is a target-independent
issues that only happens on s390 due to timing factors.
There are also three issues affecting s390 tracepoints that don't show
up in the testsuite:
1. Target independent: tfile format doesn't contain target information
(tdesc). While this affects all platforms with multiple tdescs
(eg. x86_64 is unable to pull AVX registers from tfile for that
reason), it horribly breaks 31-bit s390 with high GPRs - it has
a completely different GPR layout from plain 31-bit s390, so the
collected registers will be garbled. I suppose the proper fix to
that would be to add tdesc information to tfile format. Unfortunately,
I don't see a way to extend it in a backwards-compatible way.
2. Target independent: 32-bit (or 31-bit for us) IPA cannot be used with
64-bit gdbserver, due to communication involving lots of structs with
pointer types. Fixing that would be quite involved, but possible
(I don't suppose we have to maintain compatibility between IPA/gdbserver
from different gdb versions?).
3. s390 specific: 31-bit gdbserver doesn't know about high GPRs, and
cannot collect them if they're in use. Seems fixable with average
effort. Unfortunately, fixing that will break tfile, unless (1)
is fixed first...
These three interact in bad ways, summarised below:
- 64-bit linux, 64-bit gdbserver, 64-bit target: works OK, but you won't be
able to see VX registers in tfile.
- 64-bit linux, 64-bit gdbserver, 31-bit target:
- no fast tracepoint support due to (2)
- tfile completely broken due to (1)
- 64-bit linux, 31-bit gdbserver, 31-bit target:
- works OK, but you won't be able to see VX registers or high GPRs at all,
due to (3)
- if (3) were fixed, tfile will be completely broken due to (1)
- 31-bit linux, 31-bit gdbserver, 31-bit target: works OK
In summary, there's no way at all to use fast tracepoints on 31-bit target
if what you want to collect involves high GPRs. While there's support for
it in the IPA, it's currently disabled, to match what gdbserver supports.
Fast tracepoint support assumes z900+ CPU. The g5/g6 CPUs only have jump
instuctions with +-64kiB of range, making them pretty much useless for
our purposes, so not much loss here.
next reply other threads:[~2016-01-24 12:12 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-24 12:12 Marcin Kościelnicki [this message]
2016-01-24 12:12 ` [PATCH 8/8] gdbserver/s390: Add support for compiled agent expressions Marcin Kościelnicki
2016-03-04 10:41 ` [PATCH v2] " Marcin Kościelnicki
2016-03-14 16:19 ` Andreas Arnez
2016-01-24 12:12 ` [PATCH 7/8] gdb.trace: Bump tspeed.exp timeout to 600 seconds Marcin Kościelnicki
2016-01-26 18:17 ` Andreas Arnez
2016-01-29 9:53 ` [PATCH] " Marcin Kościelnicki
2016-02-12 11:20 ` Yao Qi
2016-02-18 18:54 ` Marcin Kościelnicki
2016-01-24 12:12 ` [PATCH 2/8] gdb/s390: Fill write_guessed_tracepoint_pc hook Marcin Kościelnicki
2016-01-26 18:12 ` Andreas Arnez
2016-01-26 19:26 ` Marcin Kościelnicki
2016-01-29 18:57 ` Andreas Arnez
2016-02-07 14:00 ` [PATCH 2/8] gdb/s390: Fill supply_pseudo_pc hook Marcin Kościelnicki
2016-01-24 12:12 ` [PATCH 3/8] gdb/s390: Fill pseudo register agent expression hooks Marcin Kościelnicki
2016-02-07 14:01 ` Marcin Kościelnicki
2016-02-25 19:23 ` Marcin Kościelnicki
2016-03-04 10:42 ` Marcin Kościelnicki
2016-03-11 2:20 ` Marcin Kościelnicki
2016-03-11 9:58 ` Andreas Arnez
2016-03-11 10:04 ` Marcin Kościelnicki
2016-01-24 12:12 ` [PATCH 1/8] gdb: Add write_guessed_tracepoint_pc hook to gdbarch Marcin Kościelnicki
2016-01-26 14:58 ` Andreas Arnez
2016-02-07 13:59 ` [PATCH 1/8] gdb: Add supply_pseudo_pc " Marcin Kościelnicki
2016-02-16 18:28 ` Ulrich Weigand
2016-02-16 21:32 ` Marcin Kościelnicki
2016-02-18 10:35 ` [PATCH 1/2] gdb: Add guess_tracepoint_registers " Marcin Kościelnicki
2016-02-18 10:35 ` [PATCH 2/2] gdb/s390: Fill guess_tracepoint_registers hook Marcin Kościelnicki
2016-02-18 16:03 ` Ulrich Weigand
2016-02-18 16:36 ` [PATCH] " Marcin Kościelnicki
2016-02-18 16:48 ` Ulrich Weigand
2016-02-18 16:58 ` Marcin Kościelnicki
2016-02-18 11:38 ` [PATCH 1/2] gdb: Add guess_tracepoint_registers hook to gdbarch Luis Machado
2016-02-18 11:39 ` Marcin Kościelnicki
2016-02-18 11:45 ` [PATCH] " Marcin Kościelnicki
2016-02-18 15:40 ` Ulrich Weigand
2016-02-18 15:41 ` Marcin Kościelnicki
2016-02-18 15:58 ` Ulrich Weigand
2016-02-18 16:01 ` Marcin Kościelnicki
2016-02-18 16:06 ` Ulrich Weigand
2016-02-18 16:11 ` Marcin Kościelnicki
2016-02-18 16:13 ` Ulrich Weigand
2016-02-18 16:22 ` Marcin Kościelnicki
2016-01-24 12:12 ` [PATCH 4/8] gdb/s390: Fill gen_return_address hook Marcin Kościelnicki
2016-02-07 14:02 ` Marcin Kościelnicki
2016-02-25 19:23 ` Marcin Kościelnicki
2016-03-04 10:42 ` Marcin Kościelnicki
2016-03-11 11:20 ` Andreas Arnez
2016-03-11 11:35 ` Marcin Kościelnicki
2016-03-11 12:18 ` Andreas Arnez
2016-03-11 12:26 ` Marcin Kościelnicki
2016-03-11 15:31 ` Andreas Arnez
2016-03-11 15:44 ` Pedro Alves
2016-03-11 16:45 ` Andreas Arnez
2016-03-11 17:02 ` Pedro Alves
2016-03-11 18:17 ` Eli Zaretskii
2016-03-11 18:37 ` Pedro Alves
2016-03-11 19:34 ` Eli Zaretskii
2016-03-15 11:11 ` Pedro Alves
2016-03-15 11:23 ` Andreas Arnez
2016-03-15 11:30 ` Pedro Alves
2016-03-11 18:07 ` Eli Zaretskii
2016-03-13 9:53 ` Marcin Kościelnicki
2016-03-14 10:07 ` Andreas Arnez
2016-01-24 12:12 ` [PATCH 5/8] gdbserver/s390: Switch on tracepoint support Marcin Kościelnicki
2016-02-07 14:04 ` Marcin Kościelnicki
2016-02-22 7:38 ` [PATCH] " Marcin Kościelnicki
2016-03-04 10:39 ` [PATCH v3] " Marcin Kościelnicki
2016-03-15 18:41 ` [PATCH v4] " Marcin Kościelnicki
2016-03-22 9:16 ` Marcin Kościelnicki
2016-03-23 15:25 ` Andreas Arnez
2016-03-24 1:15 ` Marcin Kościelnicki
2016-03-29 18:31 ` Ulrich Weigand
2016-03-29 21:40 ` Marcin Kościelnicki
2016-03-29 21:40 ` [PATCH obv] gdb/NEWS: Add mention of s390*-linux tracepoints Marcin Kościelnicki
2016-03-30 2:49 ` Eli Zaretskii
2016-01-24 12:13 ` [PATCH 6/8] gdbserver/s390: Add fast tracepoint support Marcin Kościelnicki
2016-01-25 14:34 ` Antoine Tremblay
2016-02-19 13:41 ` Marcin Kościelnicki
2016-02-19 14:41 ` Antoine Tremblay
2016-03-04 10:40 ` [PATCH v2] " Marcin Kościelnicki
2016-03-14 16:19 ` Andreas Arnez
2016-03-14 16:25 ` Marcin Kościelnicki
2016-01-25 13:27 ` [PATCH 0/8] gdb/s390: Add regular and " Antoine Tremblay
2016-01-25 13:56 ` Pedro Alves
2016-01-25 14:28 ` Marcin Kościelnicki
2016-01-25 15:57 ` Pedro Alves
2016-01-25 16:03 ` Marcin Kościelnicki
2016-02-12 11:04 ` Marcin Kościelnicki
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=1453637529-26972-1-git-send-email-koriakin@0x04.net \
--to=koriakin@0x04.net \
--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