projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Create an initial trace chunk on first start of an ltt_session
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
kernel.c
diff --git
a/src/bin/lttng-sessiond/kernel.c
b/src/bin/lttng-sessiond/kernel.c
index edb7f7b2f2f3f83efd53ac077f005b26388d52d9..7173fac16348d59cab3f2e220cb927797761fcf3 100644
(file)
--- a/
src/bin/lttng-sessiond/kernel.c
+++ b/
src/bin/lttng-sessiond/kernel.c
@@
-24,6
+24,7
@@
#include <inttypes.h>
#include <common/common.h>
#include <inttypes.h>
#include <common/common.h>
+#include <common/trace-chunk.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-ctl/kernel-ioctl.h>
#include <common/sessiond-comm/sessiond-comm.h>
#include <common/kernel-ctl/kernel-ctl.h>
#include <common/kernel-ctl/kernel-ioctl.h>
#include <common/sessiond-comm/sessiond-comm.h>
@@
-1159,12
+1160,15
@@
end_boot_id:
*/
void kernel_destroy_session(struct ltt_kernel_session *ksess)
{
*/
void kernel_destroy_session(struct ltt_kernel_session *ksess)
{
+ struct lttng_trace_chunk *trace_chunk;
+
if (ksess == NULL) {
DBG3("No kernel session when tearing down session");
return;
}
DBG("Tearing down kernel session");
if (ksess == NULL) {
DBG3("No kernel session when tearing down session");
return;
}
DBG("Tearing down kernel session");
+ trace_chunk = ksess->current_trace_chunk;
/*
* Destroy channels on the consumer if at least one FD has been sent and we
/*
* Destroy channels on the consumer if at least one FD has been sent and we
@@
-1198,6
+1202,7
@@
void kernel_destroy_session(struct ltt_kernel_session *ksess)
consumer_output_send_destroy_relayd(ksess->consumer);
trace_kernel_destroy_session(ksess);
consumer_output_send_destroy_relayd(ksess->consumer);
trace_kernel_destroy_session(ksess);
+ lttng_trace_chunk_put(trace_chunk);
}
/*
}
/*
@@
-1244,7
+1249,7
@@
enum lttng_error_code kernel_snapshot_record(struct ltt_kernel_session *ksess,
struct consumer_socket *socket;
struct lttng_ht_iter iter;
struct ltt_kernel_metadata *saved_metadata;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
struct ltt_kernel_metadata *saved_metadata;
- struct ltt_session *session;
+ struct ltt_session *session
= NULL
;
uint64_t trace_archive_id;
assert(ksess);
uint64_t trace_archive_id;
assert(ksess);
@@
-1297,7
+1302,7
@@
enum lttng_error_code kernel_snapshot_record(struct ltt_kernel_session *ksess,
/* Put back the saved consumer output into the session. */
ksess->consumer = saved_output;
if (ret < 0) {
/* Put back the saved consumer output into the session. */
ksess->consumer = saved_output;
if (ret < 0) {
- status = LTTNG_ERR_KERN_
CONSUMER
_FAIL;
+ status = LTTNG_ERR_KERN_
META
_FAIL;
goto error_consumer;
}
goto error_consumer;
}
@@
-1344,7
+1349,9
@@
error:
/* Restore metadata state.*/
ksess->metadata = saved_metadata;
ksess->metadata_stream_fd = saved_metadata_fd;
/* Restore metadata state.*/
ksess->metadata = saved_metadata;
ksess->metadata_stream_fd = saved_metadata_fd;
-
+ if (session) {
+ session_put(session);
+ }
rcu_read_unlock();
return status;
}
rcu_read_unlock();
return status;
}
@@
-1430,7
+1437,7
@@
enum lttng_error_code kernel_rotate_session(struct ltt_session *session)
chan->key, session->name);
ret = consumer_rotate_channel(socket, chan->key,
ksess->uid, ksess->gid, ksess->consumer,
chan->key, session->name);
ret = consumer_rotate_channel(socket, chan->key,
ksess->uid, ksess->gid, ksess->consumer,
- ksess->consumer->subdir,
+ ksess->consumer->
domain_
subdir,
/* is_metadata_channel */ false,
session->current_archive_id);
if (ret < 0) {
/* is_metadata_channel */ false,
session->current_archive_id);
if (ret < 0) {
@@
-1444,7
+1451,7
@@
enum lttng_error_code kernel_rotate_session(struct ltt_session *session)
*/
ret = consumer_rotate_channel(socket, ksess->metadata->key,
ksess->uid, ksess->gid, ksess->consumer,
*/
ret = consumer_rotate_channel(socket, ksess->metadata->key,
ksess->uid, ksess->gid, ksess->consumer,
- ksess->consumer->subdir,
+ ksess->consumer->
domain_
subdir,
/* is_metadata_channel */ true,
session->current_archive_id);
if (ret < 0) {
/* is_metadata_channel */ true,
session->current_archive_id);
if (ret < 0) {
This page took
0.024955 seconds
and
4
git commands to generate.