From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [lttng-dev] how does ust tracer map share lttng buffer
Date: Fri, 15 Nov 2013 17:06:15 +0000 (UTC) [thread overview]
Message-ID: <414012525.68357.1384535175855.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <tencent_4B722D17200DC9B17B45EFF3@qq.com>
----- Original Message -----
> From: "???" <39017736@qq.com>
> To: "mathieu.desnoyers" <mathieu.desnoyers at efficios.com>
> Sent: Friday, November 15, 2013 11:37:11 AM
> Subject: how does ust tracer map share lttng buffer
> Hi,Mathieu
> After lttng sub-command enable-event is issued at first time, lttng-consumerd
> will be informed by lttng-sessiond to open and mmap share memory regions
> .Then lttng-sessiond get all shmfds from lttng-consumerd.But how does ust
> tracer map to these share memory regions?
> AFAIK,lttng-sessiond will call do_consumer_create_channel() ,then
> send_channel_uid_to_ust(). What's confused me is in
> send_channel_uid_to_ust(),lttng-sessiond dup() one shmfd , then
> ust_consumer_send_stream_to_ust() to ust tracer, then close the shmfd and
> loop all shmfds. So all duped fds are the same fd-number (say A)and send to
> ust tracer through
> ust_consumer_send_stream_to_ust()->ustctl_send_stream_to_ust()->ustctl_send_stream()->ustcomm_send_fds_unix_sock()(unix
> socket is $HOME/.lttng/lttng-ust-sock-5).Why does it send the same fds to
> ust tracer?
> At ust tracer side,it calls
> handle_message()->ustcomm_recv_stream_from_sessiond() and mmap every
> received fd to share memory region.However,every received fd is different
> from A.So I must miss something anywhere.How does ust tracer map share lttng
> buffer?
In lttng-sessiond, we send file descriptors for each posix SHM associated to every per-cpu buffer to the application over unix socket. So it's more or less : receive FD from consumer, send FD over unix socket to UST, close FD (we loop on this). Indeed, from a sessiond point of view, this will typically use the same FD number, but it's really associated with a different posix SHM each time. David can probably answer your question in more detail.
Thanks,
Mathieu
> PS:code is from lttng-2.3.0 .
> Thanks
> MuXiu.Cao
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20131115/3b598b1c/attachment.html>
next parent reply other threads:[~2013-11-15 17:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <tencent_4B722D17200DC9B17B45EFF3@qq.com>
2013-11-15 17:06 ` Mathieu Desnoyers [this message]
[not found] ` <tencent_778EC52B229ABB7013AB0416@qq.com>
2013-11-16 13:42 ` [lttng-dev] 回复: " David Goulet
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=414012525.68357.1384535175855.JavaMail.zimbra@efficios.com \
--to=mathieu.desnoyers@efficios.com \
/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