[lttng-dev] [RFC] Extracting the payload from select, poll, epoll_ctl and epoll_wait
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Mar 24 18:46:06 UTC 2016
----- On Mar 22, 2016, at 6:48 PM, Julien Desfossez jdesfossez at efficios.com wrote:
> Hi,
>
> Currently with these system calls, we only have the address of a
> user-space pointer containing the interesting data, so we cannot do any
> analysis.
>
> For LTTng 2.9, we want to extract the content of these system calls to
> get more insights. We try to stay as close as possible to the layout
> received in order to avoid long processing in the critical path.
>
> Here are the proposed outputs:
> - select: bitmask of FDs represented as a sequence of long, so the
> position of each bit set is the number of a FD. Only extract the
> necessary fields (select already receives the maximum FD set). select
> is limited at 1024 FDs, so we output at most 16 longs on 64-bits and
> 32 on 32-bits architectures.
I would be tempted to represent the bitmask as a sequence of bytes, making
it perhaps a bit more visually clobbered, but simplify interpretation of
mapping from bit number to sequence offset compared to a sequence of
unsigned long, which length differ depending on the architecture bitness.
Thanks,
Mathieu
> - poll: for each FD in the poll set, output the FD and the flags
> (events), each possible event is a bit. On exit, only extract the
> relevant FDs.
> - epoll_ctl: output the FD, flags (events) and the data. The data is a
> union that can contain anything, we propose to output it twice: as a
> "uint64_t" in hexadecimal (for the u64 fields) and as a signed "int"
> in decimal (for the "fd" field).
> - epoll_wait: on return, if FDs are returned, extract the list in the
> same format as in epoll_ctl.
>
> Here is an example output:
> https://paste.debian.net/plain/418248
>
> For those interested in the CTF metadata, here it is:
> https://paste.debian.net/plain/418245
>
> You will notice, that this output can be very verbose with long list of
> FDs. To address that, we plan to add pretty priting hints in the next
> version of CTF (CTF2) to inform the viewers that the fields are bitmasks
> (in this case, we only care about the position of the bits set), or that
> the structures have bit-sized fields (in this case, we only want to
> output the name of the fields where the bit is set).
>
> This formatting decision has an impact on the analysis tools, so if you
> have any comments on the proposed output, now is the time.
>
> Thanks,
>
> Julien
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list