----- Original Message -----

> From: "草木秀" <[email protected]>
> To: "mathieu.desnoyers" <[email protected]>
> 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 
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to