X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fust-consumer%2Fust-consumer.c;h=432f43a60c92d78aff436370e717ca382231d466;hb=95a1109b9ea25871941d9fff87cd8c2b2cba61d3;hp=f783d4058c550033983045c93cbeddcc363028d3;hpb=f2a444f17e07f805109c01ab4c7f53cc98b1adf3;p=lttng-tools.git diff --git a/src/common/ust-consumer/ust-consumer.c b/src/common/ust-consumer/ust-consumer.c index f783d4058..432f43a60 100644 --- a/src/common/ust-consumer/ust-consumer.c +++ b/src/common/ust-consumer/ust-consumer.c @@ -114,13 +114,15 @@ error: static struct lttng_consumer_channel *allocate_channel(uint64_t session_id, const char *pathname, const char *name, uid_t uid, gid_t gid, int relayd_id, uint64_t key, enum lttng_event_output output, - uint64_t tracefile_size, uint64_t tracefile_count) + uint64_t tracefile_size, uint64_t tracefile_count, + uint64_t session_id_per_pid, unsigned int monitor) { assert(pathname); assert(name); - return consumer_allocate_channel(key, session_id, pathname, name, uid, gid, - relayd_id, output, tracefile_size, tracefile_count); + return consumer_allocate_channel(key, session_id, pathname, name, uid, + gid, relayd_id, output, tracefile_size, + tracefile_count, session_id_per_pid, monitor); } /* @@ -924,7 +926,9 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, msg.u.ask_channel.relayd_id, msg.u.ask_channel.key, (enum lttng_event_output) msg.u.ask_channel.output, msg.u.ask_channel.tracefile_size, - msg.u.ask_channel.tracefile_count); + msg.u.ask_channel.tracefile_count, + msg.u.ask_channel.session_id_per_pid, + msg.u.ask_channel.monitor); if (!channel) { goto end_channel_error; } @@ -938,16 +942,6 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, attr.chan_id = msg.u.ask_channel.chan_id; memcpy(attr.uuid, msg.u.ask_channel.uuid, sizeof(attr.uuid)); - /* Translate the event output type to UST. */ - switch (channel->output) { - case LTTNG_EVENT_SPLICE: - /* Splice not supported so fallback on mmap(). */ - case LTTNG_EVENT_MMAP: - default: - attr.output = CONSUMER_CHANNEL_MMAP; - break; - }; - /* Translate and save channel type. */ switch (msg.u.ask_channel.type) { case LTTNG_UST_CHAN_PER_CPU: @@ -1146,6 +1140,15 @@ int lttng_ustconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, } goto end_msg_sessiond; } + case LTTNG_CONSUMER_SNAPSHOT_CHANNEL: + { + ret = consumer_send_status_msg(sock, ret_code); + if (ret < 0) { + /* Somehow, the session daemon is not responding anymore. */ + goto end_nosignal; + } + break; + } default: break; } @@ -1500,10 +1503,13 @@ int lttng_ustconsumer_request_metadata(struct lttng_consumer_local_data *ctx, } request.session_id = channel->session_id; + request.session_id_per_pid = channel->session_id_per_pid; request.uid = channel->uid; request.key = channel->key; - DBG("Sending metadata request to sessiond, session %" PRIu64, - channel->session_id); + DBG("Sending metadata request to sessiond, session id %" PRIu64 + ", per-pid %" PRIu64, + channel->session_id, + channel->session_id_per_pid); ret = lttcomm_send_unix_sock(ctx->consumer_metadata_socket, &request, sizeof(request));