X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=libust%2Fbuffers.h;h=db4b7089071e42358d18b4172da60ca2a6963ff6;hb=015d08b66af5ebd10665aa90f5426930e56c540d;hp=bff3ed54ba2f2eb4c06192c283f6aa3f6e68bd13;hpb=b73a4c471dc987ea8548632dffb3c7050de77dd0;p=ust.git diff --git a/libust/buffers.h b/libust/buffers.h index bff3ed5..db4b708 100644 --- a/libust/buffers.h +++ b/libust/buffers.h @@ -356,7 +356,7 @@ static __inline__ int ltt_reserve_slot(struct ust_trace *trace, * Perform retryable operations. */ /* FIXME: make this rellay per cpu? */ - if (unlikely(__get_cpu_var(ltt_nesting) > 4)) { + if (unlikely(LOAD_SHARED(ltt_nesting) > 4)) { local_inc(&buf->events_lost); return -EPERM; } @@ -413,14 +413,14 @@ static __inline__ void ltt_force_switch(struct ust_buffer *buf, /* * for flight recording. must be called after relay_commit. - * This function decrements de subbuffer's lost_size each time the commit count - * reaches back the reserve offset (module subbuffer size). It is useful for - * crash dump. + * This function increments the subbuffers's commit_seq counter each time the + * commit count reaches back the reserve offset (module subbuffer size). It is + * useful for crash dump. */ -#ifdef CONFIG_LTT_VMCORE -static __inline__ void ltt_write_commit_counter(struct rchan_buf *buf, - struct ltt_channel_buf_struct *ltt_buf, - long idx, long buf_offset, long commit_count, size_t data_size) +//ust// #ifdef CONFIG_LTT_VMCORE +static __inline__ void ltt_write_commit_counter(struct ust_channel *chan, + struct ust_buffer *buf, long idx, long buf_offset, + long commit_count, size_t data_size) { long offset; long commit_seq_old; @@ -436,17 +436,19 @@ static __inline__ void ltt_write_commit_counter(struct rchan_buf *buf, if (unlikely(SUBBUF_OFFSET(offset - commit_count, buf->chan))) return; - commit_seq_old = local_read(<t_buf->commit_seq[idx]); + commit_seq_old = local_read(&buf->commit_seq[idx]); while (commit_seq_old < commit_count) - commit_seq_old = local_cmpxchg(<t_buf->commit_seq[idx], + commit_seq_old = local_cmpxchg(&buf->commit_seq[idx], commit_seq_old, commit_count); + + DBG("commit_seq for channel %s_%d, subbuf %ld is now %ld", buf->chan->channel_name, buf->cpu, idx, commit_count); } -#else -static __inline__ void ltt_write_commit_counter(struct ust_buffer *buf, - long idx, long buf_offset, long commit_count, size_t data_size) -{ -} -#endif +//ust// #else +//ust// static __inline__ void ltt_write_commit_counter(struct ust_buffer *buf, +//ust// long idx, long buf_offset, long commit_count, size_t data_size) +//ust// { +//ust// } +//ust// #endif /* * Atomic unordered slot commit. Increments the commit count in the @@ -501,10 +503,10 @@ static __inline__ void ltt_commit_slot( ltt_check_deliver(chan, buf, offset_end - 1, commit_count, endidx); /* - * Update lost_size for each commit. It's needed only for extracting + * Update data_size for each commit. It's needed only for extracting * ltt buffers from vmcore, after crash. */ - ltt_write_commit_counter(buf, endidx, buf_offset, commit_count, data_size); + ltt_write_commit_counter(chan, buf, endidx, buf_offset, commit_count, data_size); } void _ust_buffers_write(struct ust_buffer *buf, size_t offset,