From: "Metzger, Markus T" <markus.t.metzger@intel.com>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
"markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>,
"jan.kratochvil@redhat.com" <jan.kratochvil@redhat.com>,
"palves@redhat.com" <palves@redhat.com>,
"tromey@redhat.com" <tromey@redhat.com>
Subject: FW: [patch v3 16/16] btrace, x86: restrict to Atom
Date: Tue, 14 Aug 2012 15:57:00 -0000 [thread overview]
Message-ID: <A78C989F6D9628469189715575E55B2307ACF643@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <A78C989F6D9628469189715575E55B2307ACF558@IRSMSX102.ger.corp.intel.com>
Resend. The original reply bounced.
Apologies for the spam to those who received multiple copies of this email.
-----Original Message-----
From: Metzger, Markus T
Sent: Tuesday, August 14, 2012 3:42 PM
To: Mark Kettenis
Cc: gdb-patches@sourceware.org; markus.t.metzger@gmail.com; jan.kratochvil@redhat.com; palves@redhat.com; tromey@redhat.com
Subject: RE: [patch v3 16/16] btrace, x86: restrict to Atom
> -----Original Message-----
> From: Mark Kettenis [mailto:mark.kettenis@xs4all.nl]
> Sent: Tuesday, August 14, 2012 3:27 PM
Thanks for your feedback!
> > +int
> > +i386_linux_supports_btrace (void)
> > +{
> > + unsigned int cpuid, model, family;
> > +
> > + if (!linux_supports_btrace ())
> > + return 0;
> > +
> > + __asm__ __volatile__ ("movl $1, %%eax;"
> > + "cpuid;"
> > + : "=a" (cpuid)
> > + :: "%ebx", "%ecx", "%edx");
> > +
[...]
> You can't have this function in a -tdep.c, since this file needs to be
> compilable everywhere (not just on i386/amd64). But even in a -nat.c
> file you shouldn't use inline assembly, since it isn't a standardized
> C feature. I can only guess why you want to restrict this feature to
> Atom only, but I suspect that the proper solution is to query the
> target whether branch tracing is supported. That means the -nat.c
> code should have code to query for support in the Linux kernel.
I agree that it would be better to have this check done in the kernel. The problem is that such a patch will take very long before
it becomes available in distributions. And even then, we would need to handle kernels without the patch, so we would need something
similar to this in gdb, as well.
I took the cpuid bits from gdb/go32-nat.c. I have not seen any compilation guard around it.
I thought that the i386-tdep files are meant to contain i386 specific code, that's why I put the code there. Where would be the
right place to put such code?
Thanks,
Markus.
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer, Christian Lamprechter
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-08-14 15:57 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-14 13:01 [patch v3 00/16] branch tracing support for Atom markus.t.metzger
2012-08-14 13:00 ` [patch v3 01/16] gdbserver, build: add -DGDBSERVER markus.t.metzger
2012-08-15 0:41 ` Doug Evans
2012-08-15 7:59 ` Metzger, Markus T
2012-08-14 13:00 ` [patch v3 10/16] xml, btrace: define btrace xml document style markus.t.metzger
2012-08-14 13:00 ` [patch v3 02/16] disas: add precise instructions flag markus.t.metzger
2012-08-14 13:01 ` [patch v3 13/16] gdbserver, linux, btrace: add btrace support for linux-low markus.t.metzger
2012-08-14 13:01 ` [patch v3 11/16] remote, btrace: add branch trace remote ops markus.t.metzger
2012-08-14 13:01 ` [patch v3 08/16] linux, btrace: perf_event based branch tracing markus.t.metzger
2012-08-14 13:01 ` [patch v3 09/16] linux, i386, amd64: enable btrace for 32bit and 64bit linux native markus.t.metzger
2012-08-14 13:01 ` [patch v3 16/16] btrace, x86: restrict to Atom markus.t.metzger
2012-08-14 13:27 ` Mark Kettenis
[not found] ` <A78C989F6D9628469189715575E55B2307ACF558@IRSMSX102.ger.corp.intel.com>
2012-08-14 15:57 ` Metzger, Markus T [this message]
2012-09-24 12:23 ` Metzger, Markus T
2012-09-27 7:08 ` Joel Brobecker
2012-09-28 2:40 ` Mark Kettenis
2012-09-28 6:51 ` Metzger, Markus T
2012-10-01 19:24 ` Mark Kettenis
2012-10-04 7:51 ` Metzger, Markus T
2012-08-14 13:01 ` [patch v3 04/16] source, disasm: optionally prefix source lines with filename markus.t.metzger
2012-09-11 20:21 ` Tom Tromey
2012-08-14 13:01 ` [patch v3 03/16] source: add flags to print_source_lines () markus.t.metzger
2012-09-11 20:14 ` Tom Tromey
2012-09-12 8:34 ` Metzger, Markus T
2012-08-14 13:01 ` [patch v3 07/16] configure: add check for perf_event header markus.t.metzger
2012-08-14 13:01 ` [patch v3 05/16] thread, btrace: add generic branch trace support markus.t.metzger
2012-08-14 13:01 ` [patch v3 12/16] gdbserver, btrace: add generic btrace support markus.t.metzger
2012-08-14 13:03 ` [patch v3 06/16] cli, btrace: add btrace cli markus.t.metzger
2012-08-14 13:03 ` [patch v3 14/16] test, btrace: add branch tracing tests markus.t.metzger
2012-08-14 13:03 ` [patch v3 15/16] test, btrace: more " markus.t.metzger
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=A78C989F6D9628469189715575E55B2307ACF643@IRSMSX102.ger.corp.intel.com \
--to=markus.t.metzger@intel.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
--cc=mark.kettenis@xs4all.nl \
--cc=markus.t.metzger@gmail.com \
--cc=palves@redhat.com \
--cc=tromey@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