[lttng-dev] [PATCH lttng-ust v2] Fix: allocate ts_end in ringbuffer shared memory

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Fri May 10 13:41:18 EDT 2019


Merged into master, 2.11, thanks!

Mathieu

----- On May 10, 2019, at 11:26 AM, Gabriel-Andrew Pollo-Guilbert gabriel.pollo-guilbert at efficios.com wrote:

> This patch allocates the memory used by the ts_end field added by commit
> 6c737d05. When allocating lots of subbuffer for a channel (512 or more),
> zalloc_shm() will fail to allocate all the objects because the allocated memory
> map didn't take account the newly added field.
> 
> lttng-tools version: b14f53d4 (2.12.0-pre)
> 
> Steps to reproduce the bug:
> 
>	1. lttng-sessiond -vvv --verbose-consumer
>	2. start a traced application
>	3. lttng create "test-sesssion"
>	4. lttng enable-channel --userspace --num-subbuf 512 --subbuf-size 8k
>	--overwrite channel
>	5. lttng enable-event -u -a -c channel
>	6. lttng start
> 
> After these steps, the following error message show should be thrown:
> 
>	Error: ask_channel_creation consumer command failed
>	Error: Error creating UST channel "channel" on the consumer daemon
> 
> Signed-off-by: Gabriel-Andrew Pollo-Guilbert
> <gabriel.pollo-guilbert at efficios.com>
> ---
> libringbuffer/ring_buffer_backend.c | 3 +++
> 1 file changed, 3 insertions(+)
> 
> diff --git a/libringbuffer/ring_buffer_backend.c
> b/libringbuffer/ring_buffer_backend.c
> index a0ef7446..431b8eae 100644
> --- a/libringbuffer/ring_buffer_backend.c
> +++ b/libringbuffer/ring_buffer_backend.c
> @@ -341,6 +341,9 @@ int channel_backend_init(struct channel_backend *chanb,
> 	shmsize += sizeof(struct commit_counters_hot) * num_subbuf;
> 	shmsize += offset_align(shmsize, __alignof__(struct commit_counters_cold));
> 	shmsize += sizeof(struct commit_counters_cold) * num_subbuf;
> +	/* Sampled timestamp end */
> +	shmsize += offset_align(shmsize, __alignof__(uint64_t));
> +	shmsize += sizeof(uint64_t) * num_subbuf;
> 
> 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
> 		struct lttng_ust_lib_ring_buffer *buf;
> --
> 2.21.0

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list