From: compudj@krystal.dyndns.org (Mathieu Desnoyers)
Subject: [ltt-dev] [PATCH take2 02/13] get name and fmt from permanent eID
Date: Mon, 23 Feb 2009 11:37:07 -0500 [thread overview]
Message-ID: <20090223163707.GB31815@Krystal> (raw)
In-Reply-To: <498A5D80.8060702@cn.fujitsu.com>
* Lai Jiangshan (laijs at cn.fujitsu.com) wrote:
> struct marker_entry is permanent, we introduce two APIs for
> getting name and fmt from eIDs.
Please change the description of this patch and of patch 01 for
something which includes :
struct marker_entry is permanent for the duration of active tracing
sessions. That means : as long as a struct marker_entry channel and
event IDs can be seen by an active tracing session, it stays valid until
all tracing sessions end.
Otherwise just saying that "struct marker_entry is permanent" is
misleading.
Mathieu
>
> Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
> ---
> diff --git a/include/linux/marker.h b/include/linux/marker.h
> index 32387e8..2fe8977 100644
> --- a/include/linux/marker.h
> +++ b/include/linux/marker.h
> @@ -238,6 +238,9 @@ extern int marker_probe_unregister_private_data(marker_probe_func *probe,
> extern void *marker_get_private_data(const char *channel, const char *name,
> marker_probe_func *probe, int num);
>
> +const char *marker_get_name_form_id(u16 channel_id, u16 event_id);
> +const char *marker_get_fmt_form_id(u16 channel_id, u16 event_id);
> +
> /*
> * marker_synchronize_unregister must be called between the last marker probe
> * unregistration and the end of module exit to make sure there is no caller
> diff --git a/kernel/marker.c b/kernel/marker.c
> index b11a82a..6a918e2 100644
> --- a/kernel/marker.c
> +++ b/kernel/marker.c
> @@ -997,6 +1010,40 @@ void *marker_get_private_data(const char *channel, const char *name,
> }
> EXPORT_SYMBOL_GPL(marker_get_private_data);
>
> +static struct marker_entry *get_entry_from_id(u16 channel_id, u16 event_id)
> +{
> + struct hlist_head *head;
> + struct hlist_node *node;
> + struct marker_entry *e, *found = NULL;
> + u32 hash = hash_32((channel_id << 16) | event_id, MARKER_HASH_BITS);
> +
> + mutex_lock(&markers_mutex);
> + head = id_table + hash;
> + hlist_for_each_entry(e, node, head, id_list) {
> + if (e->channel_id == channel_id && e->event_id == event_id) {
> + found = e;
> + break;
> + }
> + }
> + mutex_unlock(&markers_mutex);
> + return found;
> +}
> +
> +/* must call when ids/marker_entry are kept alive */
> +const char *marker_get_name_form_id(u16 channel_id, u16 event_id)
> +{
> + struct marker_entry *e = get_entry_from_id(channel_id, event_id);
> + return e ? e->name : NULL;
> +}
> +EXPORT_SYMBOL_GPL(marker_get_name_form_id);
> +
> +const char *marker_get_fmt_form_id(u16 channel_id, u16 event_id)
> +{
> + struct marker_entry *e = get_entry_from_id(channel_id, event_id);
> + return e ? e->format : NULL;
> +}
> +EXPORT_SYMBOL_GPL(marker_get_fmt_form_id);
> +
> /**
> * markers_compact_event_ids: Compact markers event IDs and reassign channels
> *
>
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
prev parent reply other threads:[~2009-02-23 16:37 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-05 3:31 Lai Jiangshan
2009-02-23 16:37 ` Mathieu Desnoyers [this message]
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=20090223163707.GB31815@Krystal \
--to=compudj@krystal.dyndns.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