From: "Metzger, Markus T" <markus.t.metzger@intel.com>
To: Pedro Alves <palves@redhat.com>
Cc: "kettenis@gnu.org" <kettenis@gnu.org>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
"markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>
Subject: RE: [PATCH 00/16] branch tracing support (resend)
Date: Thu, 31 May 2012 17:11:00 -0000 [thread overview]
Message-ID: <A78C989F6D9628469189715575E55B2307A9F14C@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <4FC65F26.7010604@redhat.com>
[-- Attachment #1.1: Type: text/plain, Size: 2084 bytes --]
> -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Wednesday, May 30, 2012 7:56 PM
> To: Metzger, Markus T
> > The first hundred iterations are looking good on my system.
>
>
> In that case,
>
> > I'm using 2.6.32-220.el6.x86_64, this time.
> > I'll let this run overnight
>
>
> that is probably unnecessary -- I get failures in almost every run, but the
> set of tests that fail changes between runs.
I get sporadic fails about every 1000th run. Most occur when switching
threads, i.e.
gdb_test "thread 2" ".*Switching to thread 2.*"
I got two timeouts while switching threads, as well.
> Attached two gdb.log files, of different runs showing different failures.
In the files you sent me, we do not get the full trace sometimes.
This might be related to a Linux perf_event feature. The perf_event consumer
is responsible for detecting when there are new records. The tracee is
scheduled
out after it notified its ptracer. When it is scheduled out, it may write a
few more
trace records. The ptracer may already be running, at this time.
In gdb/common/linux-btrace.c, I check for new data after I finished reading
the
trace, and start over again when I see new records. This was meant to mitigate
this.
Until now, I thought that this would be sufficient. In general, however, there
is no
guarantee that we will not get new trace records after we finished reading.
For interactive debugger use, this should not be a problem. There is plenty of
time
for the debuggee to write its last trace records before we start reading the
trace.
For scripting, however, it seems that we may indeed be too fast sometimes.
I don't have a solution for this. Ideally, the kernel would write branch trace
records
before notifying the ptracer. Or it would allow access to the actual trace
buffer given
to the hardware (which would avoid the write-back problem). In gdb, we could
yield
when reading branch trace to increase the chance that the debuggee finished
writing.
Or we simply accept this behavior as a strange curiosity.
Regards,
Markus.
[-- Attachment #1.2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 7228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 417 bytes --]
--------------------------------------------------------------------------------------
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052
next prev parent reply other threads:[~2012-05-31 17:11 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-23 11:23 markus.t.metzger
2012-05-23 11:24 ` [PATCH 06/16] configure: add check for perf_event header markus.t.metzger
2012-05-30 20:43 ` Jan Kratochvil
2012-05-31 15:34 ` Metzger, Markus T
2012-06-22 20:40 ` Tom Tromey
2012-06-25 8:50 ` Metzger, Markus T
2012-05-23 11:24 ` [PATCH 10/16] btrace, config: enable btrace for 32bit and 64bit linux native markus.t.metzger
2012-05-23 11:24 ` [PATCH 02/16] source: add flags to print_source_lines () markus.t.metzger
2012-05-30 20:41 ` Jan Kratochvil
2012-05-31 15:34 ` Metzger, Markus T
2012-06-22 20:08 ` Tom Tromey
2012-06-25 8:50 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 03/16] source, disasm: optionally prefix source lines with filename markus.t.metzger
2012-05-30 20:41 ` Jan Kratochvil
2012-05-23 11:25 ` [PATCH 01/16] disas: add precise instructions flag markus.t.metzger
2012-05-23 11:25 ` [PATCH 14/16] remote, btrace: add branch trace remote ops markus.t.metzger
2012-05-30 20:44 ` Jan Kratochvil
2012-06-01 8:49 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 08/16] linux, btrace: perf_event based branch tracing markus.t.metzger
2012-05-30 20:43 ` Jan Kratochvil
2012-05-31 15:34 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 15/16] gdbserver, btrace: add generic btrace support markus.t.metzger
2012-05-23 11:25 ` [PATCH 16/16] gdbserver, linux, btrace: add btrace support for linux-low markus.t.metzger
2012-05-23 11:25 ` [PATCH 13/16] xml, btrace: define btrace xml document style markus.t.metzger
2012-05-30 20:44 ` Jan Kratochvil
2012-06-01 8:39 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 11/16] test, btrace: add branch trace tests markus.t.metzger
2012-05-30 20:44 ` Jan Kratochvil
2012-06-01 11:37 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 09/16] btrace, linux: add linux native btrace target ops markus.t.metzger
2012-05-30 20:43 ` Jan Kratochvil
2012-05-31 15:34 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 04/16] thread, btrace: add generic branch trace support markus.t.metzger
2012-05-30 20:42 ` Jan Kratochvil
2012-05-31 15:33 ` Metzger, Markus T
2012-05-23 11:25 ` [PATCH 05/16] cli, btrace: add btrace cli markus.t.metzger
2012-05-30 20:42 ` Jan Kratochvil
2012-05-31 15:33 ` Metzger, Markus T
2012-06-01 18:42 ` Jan Kratochvil
2012-06-05 9:56 ` Metzger, Markus T
2012-05-23 11:26 ` [PATCH 12/16] test, btrace: more branch tracing tests markus.t.metzger
2012-05-23 11:26 ` [PATCH 07/16] configure: autoreconf markus.t.metzger
2012-06-22 20:44 ` Tom Tromey
2012-06-25 8:50 ` Metzger, Markus T
2012-05-25 19:18 ` [PATCH 00/16] branch tracing support (resend) Pedro Alves
2012-05-29 14:31 ` Metzger, Markus T
2012-05-30 14:49 ` Pedro Alves
2012-05-30 15:51 ` Metzger, Markus T
2012-05-30 17:56 ` Pedro Alves
2012-05-31 17:11 ` Metzger, Markus T [this message]
2012-06-04 6:46 ` Metzger, Markus T
2012-06-12 11:32 ` Metzger, Markus T
2012-06-12 12:09 ` Jan Kratochvil
2012-06-12 12:23 ` Pedro Alves
2012-06-12 12:25 ` Jan Kratochvil
2012-06-12 13:38 ` Metzger, Markus T
2012-05-30 20:41 ` Jan Kratochvil
2012-05-31 15:33 ` Metzger, Markus T
2012-06-22 20:31 ` Tom Tromey
2012-06-25 8:50 ` Metzger, Markus T
2012-07-02 8:29 ` Metzger, Markus T
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=A78C989F6D9628469189715575E55B2307A9F14C@IRSMSX102.ger.corp.intel.com \
--to=markus.t.metzger@intel.com \
--cc=gdb-patches@sourceware.org \
--cc=kettenis@gnu.org \
--cc=markus.t.metzger@gmail.com \
--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