X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=ustd%2Flowlevel.c;h=47a6f776e6dc5a9f92c90327c7bb88179e5e36f6;hb=04c989a49784c278c229a3a5fa0dc2154e03e209;hp=d8d4cfa32c80cc83c1f11d456d24016ac6365289;hpb=02af3e607f471e9fcfe7ea6902cab56efb4c4516;p=ust.git diff --git a/ustd/lowlevel.c b/ustd/lowlevel.c index d8d4cfa..47a6f77 100644 --- a/ustd/lowlevel.c +++ b/ustd/lowlevel.c @@ -70,9 +70,9 @@ void finish_consuming_dead_subbuffer(struct buffer_info *buf) long i_subbuf; - DBG("processing died buffer"); - DBG("consumed offset is %ld", consumed_offset); - DBG("write offset is %ld", write_offset); + DBG("processing dead buffer (%s)", buf->name); + DBG("consumed offset is %ld (%s)", consumed_offset, buf->name); + DBG("write offset is %ld (%s)", write_offset, buf->name); /* First subbuf that we need to consume now. It is not modulo'd. * Consumed_offset is the next byte to consume. */ @@ -91,7 +91,7 @@ void finish_consuming_dead_subbuffer(struct buffer_info *buf) } /* Iterate on subbuffers to recover. */ - for(i_subbuf=first_subbuf; ; i_subbuf++, i_subbuf %= buf->n_subbufs) { + for(i_subbuf = first_subbuf % buf->n_subbufs; ; i_subbuf++, i_subbuf %= buf->n_subbufs) { void *tmp; /* commit_seq is the offset in the buffer of the end of the last sequential commit. * Bytes beyond this limit cannot be recovered. This is a free-running counter. */ @@ -112,6 +112,8 @@ void finish_consuming_dead_subbuffer(struct buffer_info *buf) } /* Check if subbuf was fully written. This is from Mathieu's algorithm/paper. */ + /* FIXME: not sure data_size = 0xffffffff when the buffer is not full. It might + * take the value of the header size initially */ if (((commit_seq - buf->subbuf_size) & commit_seq_mask) - (USTD_BUFFER_TRUNC(consumed_offset, buf) >> n_subbufs_order) == 0 && header->data_size != 0xffffffff && header->sb_size != 0xffffffff) {