[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/15] xen: trace IRQ enabling/disabling
On 01/06/17 18:34, Dario Faggioli wrote: > Trace when interrupts are disabled and (re)enabled. > Basically, we replace the IRQ disabling and enabling > functions with helpers that does the same, but also > output the proper trace record. > > For putting in the record something that will let > us identify _where_ in the code (i.e., in what function) > the IRQ manipulation is happening, use either: > - current_text_addr(), > - or __builtin_return_address(0). > > In fact, depending on whether the disabling/enabling > happens in macros (like for local_irq_disable() and > local_irq_enable()) or in actual functions (like in > spin_lock_irq*()), it is either: > - the actual content of the instruction pointer when > IRQ are disabled/enabled, > - or the return address of the utility function where > IRQ are disabled/enabled, > that will tell us what it is the actual piece of code > that is asking for the IRQ manipulation operation. > > Gate this with its specific Kconfig option, and keep > it in disabled state by default (i.e., don't build it, > if not explicitly specified), as the impact on > performance may be non negligible. > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> > --- > Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> > Cc: Julien Grall <julien.grall@xxxxxxx> > Cc: Jan Beulich <jbeulich@xxxxxxxx> > Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > Cc: Jennifer Herbert <jennifer.herbert@xxxxxxxxxx> > --- > xen/Kconfig.debug | 11 ++++- > xen/common/spinlock.c | 16 +++++-- > xen/common/trace.c | 10 +++- > xen/include/asm-arm/arm32/system.h | 12 +++++ > xen/include/asm-arm/arm64/system.h | 12 +++++ > xen/include/asm-x86/system.h | 85 > ++++++++++++++++++++++++++++++++++-- > xen/include/public/trace.h | 2 + > xen/include/xen/rwlock.h | 33 +++++++++++--- > 8 files changed, 161 insertions(+), 20 deletions(-) > > diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug > index 374c1c0..81910c9 100644 > --- a/xen/Kconfig.debug > +++ b/xen/Kconfig.debug > @@ -98,7 +98,7 @@ config PERF_ARRAYS > ---help--- > Enables software performance counter array histograms. > > -config TRACING > +menuconfig TRACING > bool "Tracing" > default y > ---help--- > @@ -106,6 +106,15 @@ config TRACING > in per-CPU ring buffers. The 'xentrace' tool can be used to read > the buffers and dump the content on the disk. > > +config TRACE_IRQSOFF > + bool "Trace when IRQs are disabled and (re)enabled" if EXPERT = "y" > + default n > + depends on TRACING > + ---help--- > + Makes it possible to generate events _every_ time IRQs are disabled > + and (re)enabled, with also an indication of where that happened. > + Note that this comes with high overead and produces huge amount of > + tracing data. *overhead (yours is missing an 'h') I think I might emphasize that the overhead well be present even when tracing is off. What about something like this? "Note that this comes with an overhead even when tracing is disabled; and has a high overhead and produces a large amount of tracing data when enabled." With that change: Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |