Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: "Metzger, Markus T" <markus.t.metzger@intel.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	       "markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>,
	       "palves@redhat.com" <palves@redhat.com>,
	       "tromey@redhat.com" <tromey@redhat.com>,
	       "kettenis@gnu.org" <kettenis@gnu.org>
Subject: Re: [patch v4 13/13] btrace, x86: restrict to Atom
Date: Tue, 27 Nov 2012 14:29:00 -0000	[thread overview]
Message-ID: <20121127142904.GA30650@host2.jankratochvil.net> (raw)
In-Reply-To: <A78C989F6D9628469189715575E55B2307B288F7@IRSMSX102.ger.corp.intel.com>

On Tue, 27 Nov 2012 15:03:48 +0100, Metzger, Markus T wrote:
> > There is i386-nat.c for the common functions between these two files.
> 
> Is it OK put Linux specific code into i386-nat.c?

True it is not so clear, it would be OK as long as the linux_supports_btrace()
call is moved out of it, as otherwise it just checks the CPU hardware feature.

But as you use it also in gdbserver I see now it can be moved to
common/linux-btrace.[ch] with appropriate #ifdef __i386__ and __x86_64__.
common/ currently does not have any per-file arch/target configury like gdb/
and gdbserver/ have, one day it will probably have it but not now.


> I took the __asm__ __volatile__ code from gdb/go32-nat.c. There's similar
> inline assembly code in gdb/gdbserver/linux-tic6x-low.c for checking the cpu
> id on that architecture.

> 
> The go32 code is also checking for features. I'm not sure whether this can
> be done by parsing /proc/cpuinfo.

/proc/cpuinfo does contain this information:
	cpu family  : 6
	model	: 42

I preferred /proc/cpuinfo, for example in virtualization environments with
buggy emulations I find easier to fake /proc/cpuinfo than the cpuid
instruction data.

I find gdb/go32-nat.c and gdb/gdbserver/linux-tic6x-low.c not so relevant key
as it has marginal market share compared to x86*.

But I am OK with the cpuid instruction when it is already in GDB.


> I think Marks point is that he does not want any such check in gdb but
> rather have the kernel handle it. He's right that the kernel should handle
> it. I just think that gdb needs to handle it, as well.

Not speaking for Mark but I also would like such check in Linux kernel
otherwise Linux kernel provides via SYS_perf_event_open invalid data.

With Linux kernel trunk having such fix we can talk how to workaround older
kernels, I agree with you a workaround for older kernels should be there as
you have implemented.  But such workaround could be limited somehow, for
example either checking /proc/version whether we run on a buggy kernel or for
example enabling the feature on any CPU model >= 90 as according to Intel
numbering all those CPUs should have the feature either missing or correct
(but never buggy).

Maintaining the list of CPUs twice in both GDB and Linux kernel does not seem
great to me.


Thanks,
Jan


  reply	other threads:[~2012-11-27 14:29 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-27 10:50 [patch v4 00/13] branch tracing support for Atom markus.t.metzger
2012-11-27 10:49 ` [patch v4 01/13] disas: add precise instructions flag markus.t.metzger
2012-11-27 16:49   ` Pedro Alves
2012-11-27 16:52     ` Jan Kratochvil
2012-11-27 16:56       ` Pedro Alves
2012-11-27 17:26     ` Metzger, Markus T
2012-11-27 17:33       ` Pedro Alves
2012-11-28 14:44         ` Metzger, Markus T
2012-11-27 10:49 ` [patch v4 03/13] cli, btrace: add btrace cli markus.t.metzger
2012-11-27 21:53   ` Tom Tromey
2012-11-30 15:09     ` Metzger, Markus T
2012-11-30 15:16       ` Jan Kratochvil
2012-11-30 15:23         ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 06/13] linux, i386, amd64: enable btrace for 32bit and 64bit linux native markus.t.metzger
2012-11-28 18:40   ` Pedro Alves
2012-12-03 16:24     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 08/13] remote, btrace: add branch trace remote ops markus.t.metzger
2012-11-28 19:23   ` Pedro Alves
2012-12-04 12:47     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 13/13] btrace, x86: restrict to Atom markus.t.metzger
2012-11-27 11:19   ` Mark Kettenis
2012-11-27 11:49     ` Metzger, Markus T
2012-11-27 14:42       ` Mark Kettenis
2012-11-27 15:14         ` Metzger, Markus T
2012-11-27 15:32           ` Pedro Alves
2012-11-27 13:05   ` Jan Kratochvil
2012-11-27 14:04     ` Metzger, Markus T
2012-11-27 14:29       ` Jan Kratochvil [this message]
2012-11-27 15:14         ` Metzger, Markus T
2012-11-27 15:50           ` Pedro Alves
2012-11-27 15:54             ` Metzger, Markus T
2012-12-06 10:15         ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 10/13] gdbserver, linux, btrace: add btrace support for linux-low markus.t.metzger
2012-11-28 20:44   ` Pedro Alves
2012-12-05  9:27     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 05/13] linux, btrace: perf_event based branch tracing markus.t.metzger
2012-11-28 17:31   ` Pedro Alves
2012-12-03 14:38     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 09/13] gdbserver, btrace: add generic btrace support markus.t.metzger
2012-11-28 20:32   ` Pedro Alves
2012-12-04 14:50     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 11/13] test, btrace: add branch tracing tests markus.t.metzger
2012-11-27 10:50 ` [patch v4 02/13] thread, btrace: add generic branch trace support markus.t.metzger
2012-11-27 18:32   ` Pedro Alves
2012-11-27 18:38     ` Pedro Alves
2012-11-28  0:41       ` Pedro Alves
2012-11-29 16:39     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 12/13] test, btrace: more branch tracing tests markus.t.metzger
2012-11-27 10:50 ` [patch v4 07/13] xml, btrace: define btrace xml document style markus.t.metzger
2012-11-28 18:53   ` Pedro Alves
2012-12-04 10:35     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 04/13] configure: add check for perf_event header markus.t.metzger
2012-11-28 10:11   ` Pedro Alves
2012-11-28 14:52     ` Metzger, Markus T
2012-11-28 14:55       ` Pedro Alves
2012-11-27 13:11 ` [patch v4 00/13] branch tracing support for Atom Jan Kratochvil
2012-11-27 14:26   ` Metzger, Markus T
2012-11-27 14:32     ` Jan Kratochvil
2012-11-27 14:40       ` Metzger, Markus T
2012-11-27 15:36       ` Jan Kratochvil
2012-11-27 16:17         ` Metzger, Markus T
2012-11-27 16:28           ` Jan Kratochvil
2012-11-27 17:30             ` Metzger, Markus T
2012-11-27 18:31               ` Jan Kratochvil
2012-11-27 18:56                 ` Markus Metzger
2012-11-28 19:01                   ` Jan Kratochvil
2012-11-29  9:13                     ` 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=20121127142904.GA30650@host2.jankratochvil.net \
    --to=jan.kratochvil@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kettenis@gnu.org \
    --cc=markus.t.metzger@gmail.com \
    --cc=markus.t.metzger@intel.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