Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dsdp-tcf-dev] Applicability of TCF agent for remote tracing

Hi Michel,

You can send binary data inside TCF messages. If you define a new
service, you can choose any data format for its messages, including
binary byte array. For example, the code to send a reply message with
some binary data can look like this:

    OutputStream * out = ...
    write_stringz(out, "R");
    write_stringz(out, token);
    for (i = 0; i < data_size; i++) write_stream(out, data[i]);
    write_stream(out, MARKER_EOM);

"zero copy" is not supported yet. Data is always placed into a channel
buffer first. It should not be very difficult to extend channel
implementation to support block  writes with "zero copy".

Regards,
Eugene.

-----Original Message-----
From: dsdp-tcf-dev-bounces@xxxxxxxxxxx
[mailto:dsdp-tcf-dev-bounces@xxxxxxxxxxx] On Behalf Of Michel Dagenais
Sent: Friday, May 08, 2009 2:07 PM
To: dsdp-tcf-dev@xxxxxxxxxxx
Subject: [dsdp-tcf-dev] Applicability of TCF agent for remote tracing

Hi, we are in the process of revamping our tracing daemon (lttd in LTTng
project at lttng.org). The new daemon should map tracing buffers from
the Linux kernel and from several traced user space applications and
receive notification when a buffer is ready (buffer full or maximum time
elapsed between flushing of data). It should then either write the
tracing data to files or send the binary tracing data efficiently over
the network to a tracing client. The tracing client should also be able
to list, enable and disable the available tracepoints in the kernel and
in the applications.

Enabling and disabling tracepoints is not high volume and thus
performance sensitive. The JSON ascii format is fine. The binary tracing
data must not be encoded in any way, as this would be an unacceptable
overhead for the traced system (using base 64 encoding, copying to the
stream buffer...).

What do you suggest to send the content of tracing buffers "zero copy"
to the remote client? There could be a command to open a new TCP
connection and use that connection. Is there a more integrated way, for
instance getting some raw TCP channel for the tracing data? 

_______________________________________________
dsdp-tcf-dev mailing list
dsdp-tcf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dsdp-tcf-dev


Back to the top