linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Karim Yaghmour <karim@opersys.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Linus Torvalds <torvalds@transmeta.com>,
	Roman Zippel <zippel@linux-m68k.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	LTT-Dev <ltt-dev@shafik.org>
Subject: Re: [PATCH] LTT for 2.5.38 1/9: Core infrastructure
Date: Sun, 22 Sep 2002 18:41:17 -0400	[thread overview]
Message-ID: <3D8E470D.C76C459E@opersys.com> (raw)
In-Reply-To: Pine.LNX.4.44.0209230021260.28641-100000@localhost.localdomain


Ingo Molnar wrote:
> +int trace_event(u8 pm_event_id,
> +               void *pm_event_struct)
> [...]
> +       read_lock(&tracer_register_lock);
> 
> ie. it's using a global spinlock. (sure, it can be made lockless, as other
> tracers have done it.)

It is, but this is separate from the trace driver. This global
spinlock is only used to avoid a race condition in the registration/
unregistration of the tracing function with the trace infrastructure.
The only case where the lock is taken in write mode is when a
tracer in being registered or unregistered (register_tracer() and
unregister_tracer()). Since tracing itself is NOT registeration/
unregistration intensive, there is no contention over this lock.

Any trace infrastructure that allows dynamic registration of tracers
needs this sort of lock in order to make sure that the function pointer
it has for the tracer is actually valid when it calls it. Of course if
the tracer itself was directly called from the inline trace statements,
then this would be a different story, but then the tracer has to be
in there all the time (which is exactly what happens with most, if
not all, the tracers already included in the kernel).

Karim

===================================================
                 Karim Yaghmour
               karim@opersys.com
      Embedded and Real-Time Linux Expert
===================================================

  reply	other threads:[~2002-09-22 22:33 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-22  5:43 [PATCH] LTT for 2.5.38 1/9: Core infrastructure Karim Yaghmour
2002-09-22 10:42 ` Ingo Molnar
2002-09-22 10:50   ` Ingo Molnar
2002-09-22 17:26   ` Roman Zippel
2002-09-22 18:35     ` Linus Torvalds
2002-09-22 19:18       ` Karim Yaghmour
2002-09-22 19:40         ` Ingo Molnar
2002-09-22 22:09           ` Karim Yaghmour
2002-09-22 22:24             ` Ingo Molnar
2002-09-22 22:41               ` Karim Yaghmour [this message]
2002-09-22 22:59                 ` Ingo Molnar
2002-09-22 22:50             ` Ingo Molnar
2002-09-22 23:32               ` Karim Yaghmour
2002-09-23  7:41                 ` Ingo Molnar
2002-09-23 15:12                   ` Karim Yaghmour
2002-09-23 20:11                     ` Andreas Ferber
2002-09-23 23:31                       ` Karim Yaghmour
2002-09-22 21:29       ` [ltt-dev] " bob
2002-09-22 19:06   ` Karim Yaghmour
2002-09-22 19:33     ` Karim Yaghmour
2002-09-22 21:20   ` [ltt-dev] " bob
2002-09-22 21:39     ` Ingo Molnar
2002-09-22 22:37       ` bob
2002-09-22 22:55         ` Ingo Molnar
2002-09-22 22:52           ` bob
2002-09-22 23:02             ` Ingo Molnar
2002-09-22 23:03               ` bob
2002-09-22 23:19                 ` Ingo Molnar
2002-09-22 23:50                   ` bob
2002-09-22 23:32             ` Ingo Molnar
2002-09-23  0:07               ` bob
2002-09-23  7:27                 ` Ingo Molnar
2002-09-23 13:59                   ` bob
2002-09-23  0:08               ` Karim Yaghmour
2002-09-22 22:58         ` Karim Yaghmour
     [not found] <Pine.LNX.4.44.0209221830400.8911-100000@serv.suse.lists.linux.kernel>
     [not found] ` <Pine.LNX.4.44.0209221130060.1455-100000@home.transmeta.com.suse.lists.linux.kernel>
2002-09-22 19:27   ` Andi Kleen
2002-09-24  1:07     ` john slee
2002-09-24 11:40       ` Andi Kleen

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=3D8E470D.C76C459E@opersys.com \
    --to=karim@opersys.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ltt-dev@shafik.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@transmeta.com \
    --cc=zippel@linux-m68k.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;
as well as URLs for NNTP newsgroup(s).