"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/pmdas/linux_proc/cgroups.c" between
pcp-6.0.2.tar.gz and pcp-6.0.3.tar.gz

About: PCP (Performance Co-Pilot) provides a framework and services to support system-level performance monitoring and management.

cgroups.c  (pcp-6.0.2):cgroups.c  (pcp-6.0.3)
skipping to change at line 628 skipping to change at line 628
#if __GNUC__ >= 10 #if __GNUC__ >= 10
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif
#endif #endif
count = fscanf(fp, fmt, &pp->avg10sec, &pp->avg1min, &pp->avg5min, count = fscanf(fp, fmt, &pp->avg10sec, &pp->avg1min, &pp->avg5min,
(unsigned long long *)&pp->total); (unsigned long long *)&pp->total);
pp->updated = (count == 4); pp->updated = (count == 4);
} }
static int static int
read_pressures(const char *file, cgroup_pressures_t *pp, int full) read_pressures(const char *file, cgroup_pressures_t *pp, int flags)
{ {
FILE *fp; FILE *fp;
memset(&pp->some, 0, sizeof(cgroup_pressure_t)); if (flags & CG_PSI_SOME)
if (full) memset(&pp->some, 0, sizeof(cgroup_pressure_t));
if (flags & CG_PSI_FULL)
memset(&pp->full, 0, sizeof(cgroup_pressure_t)); memset(&pp->full, 0, sizeof(cgroup_pressure_t));
if ((fp = fopen(file, "r")) == NULL) if ((fp = fopen(file, "r")) == NULL)
return -oserror(); return -oserror();
read_pressure(fp, "some", &pp->some); if (flags & CG_PSI_SOME)
if (full) read_pressure(fp, "some", &pp->some);
if (flags & CG_PSI_FULL)
read_pressure(fp, "full", &pp->full); read_pressure(fp, "full", &pp->full);
fclose(fp); fclose(fp);
return 0; return 0;
} }
static int static int
read_oneline(const char *file, char *buffer, size_t length) read_oneline(const char *file, char *buffer, size_t length)
{ {
FILE *fp; FILE *fp;
skipping to change at line 1540 skipping to change at line 1542
escname = unit_name_unescape(name, escbuf); escname = unit_name_unescape(name, escbuf);
sts = pmdaCacheLookupName(indom, escname, NULL, (void **)&cgroup); sts = pmdaCacheLookupName(indom, escname, NULL, (void **)&cgroup);
if (sts == PMDA_CACHE_ACTIVE) if (sts == PMDA_CACHE_ACTIVE)
goto v1; goto v1;
if (sts != PMDA_CACHE_INACTIVE && if (sts != PMDA_CACHE_INACTIVE &&
(cgroup = (cgroup2_t *)calloc(1, sizeof(cgroup2_t))) == NULL) (cgroup = (cgroup2_t *)calloc(1, sizeof(cgroup2_t))) == NULL)
goto v1; goto v1;
if (need_refresh[CLUSTER_CGROUP2_CPU_PRESSURE]) { if (need_refresh[CLUSTER_CGROUP2_CPU_PRESSURE]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "cpu.pressure"); pmsprintf(file, sizeof(file), "%s/%s", path, "cpu.pressure");
read_pressures(file, &cgroup->cpu_pressures, 0); read_pressures(file, &cgroup->cpu_pressures, CG_PSI_SOME);
} }
if (need_refresh[CLUSTER_CGROUP2_CPU_STAT]) { if (need_refresh[CLUSTER_CGROUP2_CPU_STAT]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "cpu.stat"); pmsprintf(file, sizeof(file), "%s/%s", path, "cpu.stat");
read_cpu_time(file, &cgroup->cputime); read_cpu_time(file, &cgroup->cputime);
} }
if (need_refresh[CLUSTER_CGROUP2_IO_PRESSURE]) { if (need_refresh[CLUSTER_CGROUP2_IO_PRESSURE]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "io.pressure"); pmsprintf(file, sizeof(file), "%s/%s", path, "io.pressure");
read_pressures(file, &cgroup->io_pressures, 1); read_pressures(file, &cgroup->io_pressures, CG_PSI_SOME|CG_PSI_FULL);
} }
if (need_refresh[CLUSTER_CGROUP2_IO_STAT]) { if (need_refresh[CLUSTER_CGROUP2_IO_STAT]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "io.stat"); pmsprintf(file, sizeof(file), "%s/%s", path, "io.stat");
read_io_stats(file, name); read_io_stats(file, name);
} }
if (need_refresh[CLUSTER_CGROUP2_MEM_PRESSURE]) { if (need_refresh[CLUSTER_CGROUP2_MEM_PRESSURE]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "memory.pressure"); pmsprintf(file, sizeof(file), "%s/%s", path, "memory.pressure");
read_pressures(file, &cgroup->mem_pressures, 1); read_pressures(file, &cgroup->mem_pressures, CG_PSI_SOME|CG_PSI_FULL);
}
if (need_refresh[CLUSTER_CGROUP2_IRQ_PRESSURE]) {
pmsprintf(file, sizeof(file), "%s/%s", path, "irq.pressure");
read_pressures(file, &cgroup->irq_pressures, CG_PSI_FULL);
} }
cgroup_container(name, id, sizeof(id), &cgroup->container); cgroup_container(name, id, sizeof(id), &cgroup->container);
pmdaCacheStore(indom, PMDA_CACHE_ADD, escname, cgroup); pmdaCacheStore(indom, PMDA_CACHE_ADD, escname, cgroup);
v1: v1:
/* /*
* Deprecated v1 cgroup subsystems follow, some rarely used now * Deprecated v1 cgroup subsystems follow, some rarely used now
* (memory stats, however, are still always handled this way). * (memory stats, however, are still always handled this way).
*/ */
 End of changes. 6 change blocks. 
8 lines changed or deleted 15 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)