Index: source/daemons/common/pdc.c =================================================================== RCS file: /cvs/gridengine/source/daemons/common/pdc.c,v retrieving revision 1.30 diff -r1.30 pdc.c 151a152 > 215a217 > 2453c2455 < #if defined(ALPHA) --- > #if defined(ALPHA) || defined(RSP_PROCFS_LINUX_IO_FIX) Index: source/daemons/common/pdc.h =================================================================== RCS file: /cvs/gridengine/source/daemons/common/pdc.h,v retrieving revision 1.5 diff -r1.5 pdc.h 181a182,184 > #if defined(RSP_PROCFS_LINUX_IO_FIX) > uint64 iochars; /* number of chars from previous load interval */ > #endif Index: source/daemons/common/procfs.c =================================================================== RCS file: /cvs/gridengine/source/daemons/common/procfs.c,v retrieving revision 1.17 diff -r1.17 procfs.c 767a768,808 > #if defined(RSP_PROCFS_LINUX_IO_FIX) > proc_elem->delta_chars = 0UL; > { > char procnam[256]; > char buf[1024]; > FILE *fd = (FILE*)0; > uint64 new_iochars = 0UL; > > sprintf(procnam, "%s/%s/io", PROC_DIR, dent->d_name); > > /* > * Try to parse /proc//io > */ > if ((fd = fopen(procnam, "r"))) { > while (fgets(buf, sizeof(buf), fd)) { > char *label = strtok(buf, " \t\n"); > char *token = strtok((char*) NULL, " \t\n"); > if (label && token) { > unsigned long long nchar = 0UL; > if (!strcmp("rchar:", label) > || !strcmp("wchar:", label)) { > if (sscanf(token, "%Lu", &nchar) == 1) > new_iochars += (uint64) nchar; > } > } > } > fclose(fd); > } > > /* > * Update process I/O info > */ > if (new_iochars > 0UL) { > uint64 old_iochars = proc_elem->iochars; > if (new_iochars > old_iochars) { > proc_elem->delta_chars = (new_iochars - old_iochars); > proc_elem->iochars = new_iochars; > } > } > } > #endif