This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FW: [patch v3 16/16] btrace, x86: restrict to Atom


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]