On Tue, Dec 29, 2020 at 02:27:36PM +0900, Namhyung Kim wrote: > Hi Jiri, > > On Mon, Dec 28, 2020 at 5:31 PM Jiri Olsa <jo...@redhat.com> wrote: > > > > On Wed, Dec 16, 2020 at 06:05:55PM +0900, Namhyung Kim wrote: > > > > SNIP > > > > > + *p++ = '\0'; > > > > > > - while (token != NULL) { > > > - if (subsys && !strcmp(token, subsys)) { > > > - /* found */ > > > - fclose(fp); > > > + /* check filesystem type */ > > > + if (strncmp(p, "cgroup", 6)) > > > + continue; > > > > > > - if (strlen(mountpoint) < maxlen) { > > > - strcpy(buf, mountpoint); > > > - return 0; > > > - } > > > - return -1; > > > - } > > > - token = strtok_r(NULL, ",", &saved_ptr); > > > - } > > > + if (p[6] == '2') { > > > + /* save cgroup v2 path */ > > > + strcpy(mountpoint, path); > > > + continue; > > > } > > > > > > - if (!strcmp(type, "cgroup2")) > > > - strcpy(path_v2, mountpoint); > > > + /* now we have cgroup v1, check the options for subsystem */ > > > + p += 7; > > > + > > > + p = strstr(p, subsys); > > > > not sure this is a real problem, but this would mixe up for > > cpu/cpuacct/cpuset no? we are using the function for perf_event > > subsys only, but it's globaly availble > > Yeah, that's why I added the sanity check below. :) > > > > > > + if (p == NULL) > > > + continue; > > > + > > > + /* sanity check: it should be separated by a space or a > > > comma */ > > > + if (!strchr(" ,", p[-1]) || !strchr(" ,", > > > p[strlen(subsys)])) > > > + continue; > > Here.
aah right, sry ;-) looks ok jirka