2008-10-15 16:32:00

by Metzger, Markus T

[permalink] [raw]
Subject: [rfc] x86, bts: improve X86_PTRACE_BTS help text

Improve the help text on the BTS config option.
Remove the DS config option - set it implicitly, when BTS is selected.

Signed-off-by: [email protected]

----
Index: gits/arch/x86/Kconfig.cpu
===================================================================
--- gits.orig/arch/x86/Kconfig.cpu 2008-10-15 09:02:47.000000000 +0200
+++ gits/arch/x86/Kconfig.cpu 2008-10-15 12:59:21.000000000 +0200
@@ -513,19 +513,19 @@
If unsure, say N.

config X86_DS
- bool "Debug Store support"
- default y
- help
- Add support for Debug Store.
- This allows the kernel to provide a memory buffer to the hardware
- to store various profiling and tracing events.
+ def_bool X86_PTRACE_BTS
+ depends on X86_DEBUGCTLMSR

config X86_PTRACE_BTS
- bool "ptrace interface to Branch Trace Store"
+ bool "Branch Trace Store"
default y
- depends on (X86_DS && X86_DEBUGCTLMSR)
+ depends on X86_DEBUGCTLMSR
help
- Add a ptrace interface to allow collecting an execution trace
- of the traced task.
- This collects control flow changes in a (cyclic) buffer and allows
- debuggers to fill in the gaps and show an execution trace of the debuggee.
+ This adds a ptrace interface to the hardware's branch trace store.
+
+ Debuggers may use it to collect an execution trace of the debugged
+ application in order to answer the question 'how did I get here?'.
+ Debuggers may trace user mode as well as kernel mode.
+
+ Say Y unless there is no application development on this machine
+ and you want to save a small amount of code size.
---------------------------------------------------------------------
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
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 (BLZ 502 109 00) 600119052

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


2008-10-16 06:57:34

by Roland Dreier

[permalink] [raw]
Subject: Re: [rfc] x86, bts: improve X86_PTRACE_BTS help text

Thanks for improving the help text; it looks much better.

One comment:

> config X86_DS
> - bool "Debug Store support"
> - default y
> - help
> - Add support for Debug Store.
> - This allows the kernel to provide a memory buffer to the hardware
> - to store various profiling and tracing events.
> + def_bool X86_PTRACE_BTS
> + depends on X86_DEBUGCTLMSR

using def_bool here to get this turned on if X86_PTRACE_BTS is set
doesn't seem scalable to more uses of X86_DS. I would have thought that
having X86_PTRACE_BTS select X86_DS would make more sense.

Or are other users of X86_DS not planned? In which case should there be
a separate X86_DS option at all?

> + This adds a ptrace interface to the hardware's branch trace store.
> +
> + Debuggers may use it to collect an execution trace of the debugged
> + application in order to answer the question 'how did I get here?'.
> + Debuggers may trace user mode as well as kernel mode.
> +
> + Say Y unless there is no application development on this machine
> + and you want to save a small amount of code size.

This looks much better -- someone like me could read this and make an
informed decision about the config option.

Thanks,
Roland

2008-10-16 07:13:17

by Metzger, Markus T

[permalink] [raw]
Subject: RE: [rfc] x86, bts: improve X86_PTRACE_BTS help text

>-----Original Message-----
>From: Roland Dreier [mailto:[email protected]]
>Sent: Donnerstag, 16. Oktober 2008 08:57
>To: Metzger, Markus T

> > config X86_DS
[...]
> > + def_bool X86_PTRACE_BTS
> > + depends on X86_DEBUGCTLMSR
>
>using def_bool here to get this turned on if X86_PTRACE_BTS is set
>doesn't seem scalable to more uses of X86_DS. I would have
>thought that
>having X86_PTRACE_BTS select X86_DS would make more sense.

We do plan other users. Perfmon2, for example, will be using it.

I fail to see the difference between the two models.
In one case, new users would need to select X86_DS.
In the other case, new users would need to extend the def_bool clause of
X86_DS.

The documentation recommended to use select carefuly, that's why I
picked the other one.

If people think that select is clearer, I will change it.


> > + This adds a ptrace interface to the hardware's branch
>trace store.
> > +
> > + Debuggers may use it to collect an execution trace of
>the debugged
> > + application in order to answer the question 'how did
>I get here?'.
> > + Debuggers may trace user mode as well as kernel mode.
> > +
> > + Say Y unless there is no application development on
>this machine
> > + and you want to save a small amount of code size.
>
>This looks much better -- someone like me could read this and make an
>informed decision about the config option.

Good. I will send a patch if there is no more feedback on the select vs.
def_bool topic today.

regards,
markus.
---------------------------------------------------------------------
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
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 (BLZ 502 109 00) 600119052

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.