Save/load: add support for shared memory path
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 17 Apr 2015 21:26:41 +0000 (17:26 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 25 Jun 2015 16:39:51 +0000 (12:39 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/save.c
src/common/config/config-session-abi.h
src/common/config/config.c
src/common/config/session.xsd

index 0c6894b0a91507125cc5f3310fb486af9aa3b52a..d6316ef971145211afcf74cee0bc2d7527c5e19c 100644 (file)
@@ -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;
index 230b411611882999ef0aff480da59e1acb04dddb..c578af7e9183e565a47c03cbfde429cbc429b6a1 100644 (file)
@@ -67,6 +67,7 @@ extern const char * const config_element_data_uri;
 extern const char * const config_element_max_size;
 extern const char * const config_element_pid;
 extern const char * const config_element_pids;
+extern const char * const config_element_shared_memory_path;
 
 extern const char * const config_domain_type_kernel;
 extern const char * const config_domain_type_ust;
index d84e38b9fa7b25b71de57bdc07ecb90997811b72..0366f5a87b317d4ed5bf813517fdfb4e1e978018 100644 (file)
@@ -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;
+       xmlChar *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 = node_content;
                } else {
                        /* attributes, snapshot_mode or live_timer_interval */
                        xmlNodePtr attributes_child =
@@ -2356,6 +2368,14 @@ domain_init_error:
                goto error;
        }
 
+       if (shm_path) {
+               ret = lttng_set_session_shm_path((const char *) name,
+                       (const char *) shm_path);
+               if (ret) {
+                       goto error;
+               }
+       }
+
        for (node = xmlFirstElementChild(domains_node); node;
                node = xmlNextElementSibling(node)) {
                ret = process_domain_node(node, name);
@@ -2384,6 +2404,7 @@ error:
        free(log4j_domain);
        free(python_domain);
        free(name);
+       xmlFree(shm_path);
        return ret;
 }
 
index 6d74e85f78744f6d30935c2a6d45dd0dc317cf43..0a7458d17e68d9f75f2179d59125887c5133bb1d 100644 (file)
@@ -279,6 +279,7 @@ elementFormDefault="qualified" version="2.5">
 <xs:complexType name="session_type">
        <xs:all>
                <xs:element name="name" type="name_type"/>
+               <xs:element name="shared_memory_path" type="xs:string" minOccurs="0"/>
                <xs:element name="domains" type="domain_list_type" minOccurs="0"/>
                <xs:element name="started" type="xs:boolean" default="0" minOccurs="0"/>
                <xs:element name="attributes" type="session_attributes_type" minOccurs="0"/>
This page took 0.029018 seconds and 4 git commands to generate.