Unverified Commit a2f65700 by Marcos Paulo de Souza Committed by Christian Brauner

cgfsng: Add new macro to print errors

At this point, macros such DEBUG or ERROR does not take effect because this code is called from cgroup_ops_init(cgroup.c), which runs with __attribute__((constructor)), before any log level is set form any tool like lxc-start, so these messages are lost. For now on, use the same LXC_DEBUG_CGFSNG environment variable to control these messages. Signed-off-by: 's avatarMarcos Paulo de Souza <marcos.souza.org@gmail.com>
parent ddbb1dbc
...@@ -113,6 +113,11 @@ char *cgroup_use; ...@@ -113,6 +113,11 @@ char *cgroup_use;
*/ */
static bool lxc_cgfsng_debug; static bool lxc_cgfsng_debug;
#define CGFSNG_DEBUG(format, ...) do { \
if (lxc_cgfsng_debug) \
printf("cgfsng: " format, ##__VA_ARGS__); \
} while(0)
static void free_string_list(char **clist) static void free_string_list(char **clist)
{ {
if (clist) { if (clist) {
...@@ -718,7 +723,7 @@ static bool all_controllers_found(void) ...@@ -718,7 +723,7 @@ static bool all_controllers_found(void)
struct hierarchy ** hlist = hierarchies; struct hierarchy ** hlist = hierarchies;
if (!controller_found(hlist, "freezer")) { if (!controller_found(hlist, "freezer")) {
ERROR("No freezer controller mountpoint found"); CGFSNG_DEBUG("No freezer controller mountpoint found\n");
return false; return false;
} }
...@@ -728,7 +733,7 @@ static bool all_controllers_found(void) ...@@ -728,7 +733,7 @@ static bool all_controllers_found(void)
for (p = strtok_r(cgroup_use, ",", &saveptr); p; for (p = strtok_r(cgroup_use, ",", &saveptr); p;
p = strtok_r(NULL, ",", &saveptr)) { p = strtok_r(NULL, ",", &saveptr)) {
if (!controller_found(hlist, p)) { if (!controller_found(hlist, p)) {
ERROR("No %s controller mountpoint found", p); CGFSNG_DEBUG("No %s controller mountpoint found\n", p);
return false; return false;
} }
} }
...@@ -761,13 +766,13 @@ static char **get_controllers(char **klist, char **nlist, char *line, int type) ...@@ -761,13 +766,13 @@ static char **get_controllers(char **klist, char **nlist, char *line, int type)
/* note - if we change how mountinfo works, then our caller /* note - if we change how mountinfo works, then our caller
* will need to verify /sys/fs/cgroup/ in this field */ * will need to verify /sys/fs/cgroup/ in this field */
if (strncmp(p, "/sys/fs/cgroup/", 15)) { if (strncmp(p, "/sys/fs/cgroup/", 15)) {
INFO("Found hierarchy not under /sys/fs/cgroup: \"%s\"", p); CGFSNG_DEBUG("Found hierarchy not under /sys/fs/cgroup: \"%s\"\n", p);
return NULL; return NULL;
} }
p += 15; p += 15;
p2 = strchr(p, ' '); p2 = strchr(p, ' ');
if (!p2) { if (!p2) {
ERROR("Corrupt mountinfo"); CGFSNG_DEBUG("Corrupt mountinfo\n");
return NULL; return NULL;
} }
*p2 = '\0'; *p2 = '\0';
...@@ -1055,7 +1060,7 @@ static bool parse_hierarchies(void) ...@@ -1055,7 +1060,7 @@ static bool parse_hierarchies(void)
return false; return false;
if ((f = fopen("/proc/self/mountinfo", "r")) == NULL) { if ((f = fopen("/proc/self/mountinfo", "r")) == NULL) {
SYSERROR("Failed to open \"/proc/self/mountinfo\""); CGFSNG_DEBUG("Failed to open \"/proc/self/mountinfo\"\n");
return false; return false;
} }
...@@ -1086,14 +1091,14 @@ static bool parse_hierarchies(void) ...@@ -1086,14 +1091,14 @@ static bool parse_hierarchies(void)
mountpoint = get_mountpoint(line); mountpoint = get_mountpoint(line);
if (!mountpoint) { if (!mountpoint) {
ERROR("Failed parsing mountpoint from \"%s\"", line); CGFSNG_DEBUG("Failed parsing mountpoint from \"%s\"\n", line);
free_string_list(controller_list); free_string_list(controller_list);
continue; continue;
} }
base_cgroup = get_current_cgroup(basecginfo, controller_list[0]); base_cgroup = get_current_cgroup(basecginfo, controller_list[0]);
if (!base_cgroup) { if (!base_cgroup) {
ERROR("Failed to find current cgroup for controller \"%s\"", controller_list[0]); CGFSNG_DEBUG("Failed to find current cgroup for controller \"%s\"\n", controller_list[0]);
free_string_list(controller_list); free_string_list(controller_list);
free(mountpoint); free(mountpoint);
continue; continue;
...@@ -1143,7 +1148,7 @@ static bool collect_hierarchy_info(void) ...@@ -1143,7 +1148,7 @@ static bool collect_hierarchy_info(void)
tmp = lxc_global_config_value("lxc.cgroup.use"); tmp = lxc_global_config_value("lxc.cgroup.use");
if (!cgroup_use && errno != 0) { /* lxc.cgroup.use can be NULL */ if (!cgroup_use && errno != 0) { /* lxc.cgroup.use can be NULL */
ERROR("Failed to retrieve list of cgroups to use"); CGFSNG_DEBUG("Failed to retrieve list of cgroups to use\n");
return false; return false;
} }
cgroup_use = must_copy_string(tmp); cgroup_use = must_copy_string(tmp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment