From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Frédéric Weisbecker" <fweisbec@gmail.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Li Zefan" <lizf@cn.fujitsu.com>,
linux-kernel@vger.kernel.org
Subject: Re: LTTng "TIF_KERNEL_TRACE"
Date: Tue, 28 Apr 2009 11:40:46 -0400 [thread overview]
Message-ID: <20090428154046.GA32381@Krystal> (raw)
In-Reply-To: <20090428150102.GB26546@elte.hu>
* Ingo Molnar (mingo@elte.hu) wrote:
>
> * Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
>
> > Hi Ingo,
> >
> > Looking at the current -tip tree, I notice that the
> > TIF_SYSCALL_FTRACE flag is only implemented for x86.
> >
> > I have TIF_KERNEL_TRACE in my lttng tree which applies to all
> > architectures to do the exact same thing :
> >
> > lttng-kernel-trace-thread-flag-alpha.patch
> > lttng-kernel-trace-thread-flag-arm.patch
> > lttng-kernel-trace-thread-flag-avr32.patch
> > lttng-kernel-trace-thread-flag-blackfin.patch
> > lttng-kernel-trace-thread-flag-cris.patch
> > lttng-kernel-trace-thread-flag-frv.patch
> > lttng-kernel-trace-thread-flag-h8300.patch
> > lttng-kernel-trace-thread-flag-ia64.patch
> > lttng-kernel-trace-thread-flag-m32r.patch
> > lttng-kernel-trace-thread-flag-m68k.patch
> > lttng-kernel-trace-thread-flag-mips.patch
> > lttng-kernel-trace-thread-flag-parisc.patch
> > lttng-kernel-trace-thread-flag-powerpc.patch
> > lttng-kernel-trace-thread-flag-s390.patch
> > lttng-kernel-trace-thread-flag-sh.patch
> > lttng-kernel-trace-thread-flag-sparc.patch
> > lttng-kernel-trace-thread-flag-um.patch
> > lttng-kernel-trace-thread-flag-x86.patch
> > lttng-kernel-trace-thread-flag-xtensa.patch
> > lttng-kernel-trace-thread-flag-api.patch
> >
> > Is there any way we could get this merged ?
> >
> > One thing I like about the name TIF_KERNEL_TRACE compared to
> > TIF_SYSCALL_FTRACE is that it gives us a per-thread flag that
> > could eventually be used for more kernel tracing purposes than
> > just syscalls.
>
> Yeah - TIF_KERNEL_TRACE indeed sounds more descriptive and less
> restrictive. TIF_SYSCALL_FTRACE was a bit ad-hoc.
>
Second question :
LTTng :
read_lock(&tasklist_lock);
do_each_thread(p, t) {
set_tsk_thread_flag(t, TIF_KERNEL_TRACE);
} while_each_thread(p, t);
read_unlock(&tasklist_lock);
Ftrace:
read_lock_irqsave(&tasklist_lock, flags);
do_each_thread(g, t) {
clear_tsk_thread_flag(t, TIF_SYSCALL_FTRACE);
} while_each_thread(g, t);
read_unlock_irqrestore(&tasklist_lock, flags);
With or without irqsave ?
Arguments against irqsave for this read lock :
- it's not used consistently for this read lock all over the kernel.
Sometimes the read lock is taken without irqsave.
- it can be a long iteration, and therefore disables interrupts for a
long time.
Arguments for irqsave for this read lock :
- Taking any kind of spin/rwlock with inconsistent irq disabling leads
to races where interrupts can be disabled for an unbounded amount of
time if a spinlock with irqoff waits on a spinlock with irqs on. This
is a general problem with current kernel rwlock usage. See my
"priority sifting reader-writer lock" patchset for a fix to this
problem.
Mathieu
> Ingo
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
next prev parent reply other threads:[~2009-04-28 15:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-28 13:20 LTTng "TIF_KERNEL_TRACE" Mathieu Desnoyers
2009-04-28 15:01 ` Ingo Molnar
2009-04-28 15:21 ` Mathieu Desnoyers
2009-04-28 15:40 ` Mathieu Desnoyers [this message]
2009-04-28 16:33 ` Frederic Weisbecker
2009-04-28 16:37 ` Frédéric Weisbecker
2009-04-28 16:38 ` Mathieu Desnoyers
2009-04-28 16:44 ` Frederic Weisbecker
2009-04-28 16:52 ` Steven Rostedt
2009-04-28 16:43 ` Steven Rostedt
2009-04-28 16:48 ` Frederic Weisbecker
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=20090428154046.GA32381@Krystal \
--to=mathieu.desnoyers@polymtl.ca \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
/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