From mboxrd@z Thu Jan 1 00:00:00 1970 From: jonathan.rajotte-julien@efficios.com (Jonathan Rajotte) Date: Fri, 17 Apr 2015 17:26:41 -0400 Subject: [lttng-dev] [PATCH lttng-tools] Save/load: add support for shared memory path Message-ID: <1429306001-12872-1-git-send-email-jonathan.rajotte-julien@efficios.com> Signed-off-by: Jonathan Rajotte --- src/bin/lttng-sessiond/save.c | 10 ++++++++++ src/common/config/config-session-abi.h | 1 + src/common/config/config.c | 19 +++++++++++++++++++ src/common/config/session.xsd | 1 + 4 files changed, 31 insertions(+) diff --git a/src/bin/lttng-sessiond/save.c b/src/bin/lttng-sessiond/save.c index 0c6894b..d6316ef 100644 --- a/src/bin/lttng-sessiond/save.c +++ b/src/bin/lttng-sessiond/save.c @@ -1663,6 +1663,16 @@ int save_session(struct ltt_session *session, goto end; } + if(session->shm_path[0] != '\0') { + ret = config_writer_write_element_string(writer, + config_element_shared_memory_path, + session->shm_path); + if (ret) { + ret = LTTNG_ERR_SAVE_IO_FAIL; + goto end; + } + } + ret = save_domains(writer, session); if (ret) { goto end; diff --git a/src/common/config/config-session-abi.h b/src/common/config/config-session-abi.h index 8cbff25..8ac5cb0 100644 --- a/src/common/config/config-session-abi.h +++ b/src/common/config/config-session-abi.h @@ -67,6 +67,7 @@ const char * const config_element_data_uri; const char * const config_element_max_size; const char * const config_element_pid; const char * const config_element_pids; +const char * const config_element_shared_memory_path; const char * const config_domain_type_kernel; const char * const config_domain_type_ust; diff --git a/src/common/config/config.c b/src/common/config/config.c index d84e38b..bc4f0c0 100644 --- a/src/common/config/config.c +++ b/src/common/config/config.c @@ -117,6 +117,7 @@ const char * const config_element_data_uri = "data_uri"; const char * const config_element_max_size = "max_size"; const char * const config_element_pid = "pid"; const char * const config_element_pids = "pids"; +const char * const config_element_shared_memory_path = "shared_memory_path"; const char * const config_domain_type_kernel = "KERNEL"; const char * const config_domain_type_ust = "UST"; @@ -2172,6 +2173,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, int ret, started = -1, snapshot_mode = -1; uint64_t live_timer_interval = UINT64_MAX; char *name = NULL; + char *shm_path = NULL; xmlNodePtr domains_node = NULL; xmlNodePtr output_node = NULL; xmlNodePtr node; @@ -2216,6 +2218,16 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, config_element_output)) { /* output */ output_node = node; + } else if (!shm_path && !strcmp((const char *) node->name, + config_element_shared_memory_path)) { + /* shared memory path */ + xmlChar *node_content = xmlNodeGetContent(node); + if (!node_content) { + ret = -LTTNG_ERR_NOMEM; + goto error; + } + + shm_path = (char *) node_content; } else { /* attributes, snapshot_mode or live_timer_interval */ xmlNodePtr attributes_child = @@ -2356,6 +2368,13 @@ domain_init_error: goto error; } + if (shm_path) { + ret = lttng_set_session_shm_path(name, shm_path); + if (ret) { + goto error; + } + } + for (node = xmlFirstElementChild(domains_node); node; node = xmlNextElementSibling(node)) { ret = process_domain_node(node, name); diff --git a/src/common/config/session.xsd b/src/common/config/session.xsd index 6d74e85..0a7458d 100644 --- a/src/common/config/session.xsd +++ b/src/common/config/session.xsd @@ -279,6 +279,7 @@ elementFormDefault="qualified" version="2.5"> + -- 2.1.4