const struct lttng_ust_lib_ring_buffer_config *config = &chan->backend.config;
unsigned long oldidx = subbuf_index(offsets->old, chan);
unsigned long commit_count;
+ struct commit_counters_hot *cc_hot;
config->cb.buffer_begin(buf, tsc, oldidx, handle);
* determine that the subbuffer is full.
*/
cmm_smp_wmb();
+ cc_hot = shmp_index(handle, buf->commit_hot, oldidx);
v_add(config, config->cb.subbuffer_header_size(),
- &shmp_index(handle, buf->commit_hot, oldidx)->cc);
- commit_count = v_read(config, &shmp_index(handle, buf->commit_hot, oldidx)->cc);
+ &cc_hot->cc);
+ commit_count = v_read(config, &cc_hot->cc);
/* Check if the written buffer has to be delivered */
lib_ring_buffer_check_deliver(config, buf, chan, offsets->old,
commit_count, oldidx, handle, tsc);
lib_ring_buffer_write_commit_counter(config, buf, chan,
offsets->old + config->cb.subbuffer_header_size(),
- commit_count, handle,
- shmp_index(handle, buf->commit_hot, oldidx));
+ commit_count, handle, cc_hot);
}
/*
const struct lttng_ust_lib_ring_buffer_config *config = &chan->backend.config;
unsigned long oldidx = subbuf_index(offsets->old - 1, chan);
unsigned long commit_count, padding_size, data_size;
+ struct commit_counters_hot *cc_hot;
data_size = subbuf_offset(offsets->old - 1, chan) + 1;
padding_size = chan->backend.subbuf_size - data_size;
* determine that the subbuffer is full.
*/
cmm_smp_wmb();
- v_add(config, padding_size, &shmp_index(handle, buf->commit_hot, oldidx)->cc);
- commit_count = v_read(config, &shmp_index(handle, buf->commit_hot, oldidx)->cc);
+ cc_hot = shmp_index(handle, buf->commit_hot, oldidx);
+ v_add(config, padding_size, &cc_hot->cc);
+ commit_count = v_read(config, &cc_hot->cc);
lib_ring_buffer_check_deliver(config, buf, chan, offsets->old - 1,
commit_count, oldidx, handle, tsc);
lib_ring_buffer_write_commit_counter(config, buf, chan,
offsets->old + padding_size, commit_count, handle,
- shmp_index(handle, buf->commit_hot, oldidx));
+ cc_hot);
}
/*
const struct lttng_ust_lib_ring_buffer_config *config = &chan->backend.config;
unsigned long beginidx = subbuf_index(offsets->begin, chan);
unsigned long commit_count;
+ struct commit_counters_hot *cc_hot;
config->cb.buffer_begin(buf, tsc, beginidx, handle);
cmm_smp_wmb();
v_add(config, config->cb.subbuffer_header_size(),
&shmp_index(handle, buf->commit_hot, beginidx)->cc);
- commit_count = v_read(config, &shmp_index(handle, buf->commit_hot, beginidx)->cc);
+ cc_hot = shmp_index(handle, buf->commit_hot, beginidx);
+ commit_count = v_read(config, &cc_hot->cc);
/* Check if the written buffer has to be delivered */
lib_ring_buffer_check_deliver(config, buf, chan, offsets->begin,
commit_count, beginidx, handle, tsc);
lib_ring_buffer_write_commit_counter(config, buf, chan,
offsets->begin + config->cb.subbuffer_header_size(),
- commit_count, handle,
- shmp_index(handle, buf->commit_hot, beginidx));
+ commit_count, handle, cc_hot);
}
/*