Commit c49c9a1e authored by Shane Snyder's avatar Shane Snyder
Browse files

Merge branch 'issue-216-var-whitelist' into 'master'

fix #216 (whitelist to allow some subdirs of /var to be tracked)

Closes #216

See merge request !7
parents c95a5d88 1721e240
...@@ -49,20 +49,27 @@ static int nprocs = -1; ...@@ -49,20 +49,27 @@ static int nprocs = -1;
static int darshan_mem_alignment = 1; static int darshan_mem_alignment = 1;
static long darshan_mod_mem_quota = DARSHAN_MOD_MEM_MAX; static long darshan_mod_mem_quota = DARSHAN_MOD_MEM_MAX;
/* paths prefixed with the following directories are not traced by darshan */ /* paths prefixed with the following directories are not tracked by darshan */
char* darshan_path_exclusions[] = { char* darshan_path_exclusions[] = {
"/etc/", "/etc/",
"/dev/", "/dev/",
"/usr/", "/usr/",
"/bin/", "/bin/",
"/boot/", "/boot/",
"/lib/", "/lib/",
"/opt/", "/opt/",
"/sbin/", "/sbin/",
"/sys/", "/sys/",
"/proc/", "/proc/",
"/var/", "/var/",
NULL NULL
};
/* paths prefixed with the following directories are tracked by darshan even if
* they share a root with a path listed in darshan_path_exclusions
*/
char* darshan_path_inclusions[] = {
"/var/opt/cray/dws/mounts/",
NULL
}; };
#ifdef DARSHAN_BGQ #ifdef DARSHAN_BGQ
...@@ -2075,15 +2082,24 @@ double darshan_core_wtime() ...@@ -2075,15 +2082,24 @@ double darshan_core_wtime()
int darshan_core_excluded_path(const char *path) int darshan_core_excluded_path(const char *path)
{ {
char *exclude; char *exclude, *include;
int tmp_index = 0; int tmp_index = 0;
int tmp_jndex;
while((exclude = darshan_path_exclusions[tmp_index])) {
if(!(strncmp(exclude, path, strlen(exclude)))) /* scan blacklist for paths to exclude */
return(1); while((exclude = darshan_path_exclusions[tmp_index++])) {
tmp_index++; if(!(strncmp(exclude, path, strlen(exclude)))) {
/* before excluding path, ensure it's not in whitelist */
tmp_jndex = 0;
while((include = darshan_path_inclusions[tmp_jndex++])) {
if(!(strncmp(include, path, strlen(include))))
return(0); /* whitelist hits are always tracked */
}
return(1); /* if not in whitelist, then blacklist it */
}
} }
/* if not in blacklist, no problem */
return(0); return(0);
} }
......
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