[ltt-dev] lost events due to non consumed full buffers
Akyurek, Ali (EXT)
ali.akyurek.ext at siemens.com
Fri Jan 30 09:27:44 EST 2009
Hi all,
Below is a code snippet from ltt-relay.c of LTTng 0.9.10 running on the 2.6.22 kernel.
I got approx. 70000 lost events during tracing.
I've seen that the problem is non consumed full buffers, as i show with an arrow below.
This problem occurs when my user space application initializes itself.
What do you think about the problem of not consuming? What may cause this?
Thanks.
-----------------------------------------------------------------------
reserve_commit_diff = SUBBUF_OFFSET(
buf->chan->subbuf_size - local_read(
<t_buf->commit_count[
SUBBUF_INDEX(offset_begin,
buf->chan)]), buf->chan);
if (reserve_commit_diff == 0) {
/* Next buffer not corrupted. */
if (!ltt_channel->overwrite &&
(SUBBUF_TRUNC(offset_begin, buf->chan)
- SUBBUF_TRUNC(
atomic_long_read(<t_buf->consumed),
buf->chan))
>= rchan->alloc_size) {
/*
* We do not overwrite non consumed
* buffers and we are full : event
* is lost.
*/
/* printk("non_con_buf\n"); */
==========> local_inc(<t_buf->events_lost);
return NULL;
} else {
/*
* next buffer not corrupted, we are
* either in overwrite mode or the
* buffer is not full. It's safe to
* write in this new subbuffer.
*/
}
}
---------------------------------------------------------------------
Mit freundlichem Gruss / Best Regards
Ali Günhan Akyürek
evosoft
More information about the lttng-dev
mailing list