[lttng-dev] [PATCH lttng-tools 1/3] Fix: lttng-sessiond: cpu hotplug stream number mismatch
Jérémie Galarneau
jeremie.galarneau at efficios.com
Mon May 22 15:30:11 UTC 2017
Merged in master, stable-2.10, stable-2.9, and stable-2.8.
Thanks!
Jérémie
On 11 May 2017 at 16:00, Mathieu Desnoyers
<mathieu.desnoyers at efficios.com> wrote:
> The counter should be always increasing (kept in the channel), rather
> than local to the function. This causes cpu hotplug handling to
> disregard further streams that should be added to the consumer output
> on CPU hotplug.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> ---
> src/bin/lttng-sessiond/kernel.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c
> index aa51649..e478499 100644
> --- a/src/bin/lttng-sessiond/kernel.c
> +++ b/src/bin/lttng-sessiond/kernel.c
> @@ -644,17 +644,22 @@ error:
> * Open stream of channel, register it to the kernel tracer and add it
> * to the stream list of the channel.
> *
> + * Note: given that the streams may appear in random order wrt CPU
> + * number (e.g. cpu hotplug), the index value of the stream number in
> + * the stream name is not necessarily linked to the CPU number.
> + *
> * Return the number of created stream. Else, a negative value.
> */
> int kernel_open_channel_stream(struct ltt_kernel_channel *channel)
> {
> - int ret, count = 0;
> + int ret;
> struct ltt_kernel_stream *lks;
>
> assert(channel);
>
> while ((ret = kernctl_create_stream(channel->fd)) >= 0) {
> - lks = trace_kernel_create_stream(channel->channel->name, count);
> + lks = trace_kernel_create_stream(channel->channel->name,
> + channel->stream_count);
> if (lks == NULL) {
> ret = close(ret);
> if (ret) {
> @@ -673,13 +678,10 @@ int kernel_open_channel_stream(struct ltt_kernel_channel *channel)
> lks->tracefile_size = channel->channel->attr.tracefile_size;
> lks->tracefile_count = channel->channel->attr.tracefile_count;
>
> - /* Add stream to channe stream list */
> + /* Add stream to channel stream list */
> cds_list_add(&lks->list, &channel->stream_list.head);
> channel->stream_count++;
>
> - /* Increment counter which represent CPU number. */
> - count++;
> -
> DBG("Kernel stream %s created (fd: %d, state: %d)", lks->name, lks->fd,
> lks->state);
> }
> --
> 2.1.4
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list