mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-22 15:26:21 +00:00
pm_rps: Use unbuffered I/O on sysfs files
Bionic C library may not re-read a buffered, read-only file which results in failure to monitor changes in gt_cur_freq_mhz. Signed-off-by: Jeff McGee <jeff.mcgee@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
45d63644d2
commit
265efbb2c4
@ -22,6 +22,7 @@
|
|||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
* Ben Widawsky <ben@bwidawsk.net>
|
* Ben Widawsky <ben@bwidawsk.net>
|
||||||
|
* Jeff McGee <jeff.mcgee@intel.com>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -66,7 +67,6 @@ static int readval(FILE *filp)
|
|||||||
int val;
|
int val;
|
||||||
int scanned;
|
int scanned;
|
||||||
|
|
||||||
fflush(filp);
|
|
||||||
rewind(filp);
|
rewind(filp);
|
||||||
scanned = fscanf(filp, "%d", &val);
|
scanned = fscanf(filp, "%d", &val);
|
||||||
igt_assert(scanned == 1);
|
igt_assert(scanned == 1);
|
||||||
@ -76,15 +76,11 @@ static int readval(FILE *filp)
|
|||||||
|
|
||||||
static int do_writeval(FILE *filp, int val, int lerrno)
|
static int do_writeval(FILE *filp, int val, int lerrno)
|
||||||
{
|
{
|
||||||
/* Must write twice to sysfs since the first one simply calculates the size and won't return the error */
|
|
||||||
int ret;
|
int ret;
|
||||||
rewind(filp);
|
rewind(filp);
|
||||||
ret = fprintf(filp, "%d", val);
|
ret = fprintf(filp, "%d", val);
|
||||||
rewind(filp);
|
|
||||||
ret = fprintf(filp, "%d", val);
|
|
||||||
if (ret && lerrno)
|
if (ret && lerrno)
|
||||||
igt_assert(errno = lerrno);
|
igt_assert(errno = lerrno);
|
||||||
fflush(filp);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#define writeval(filp, val) do_writeval(filp, val, 0)
|
#define writeval(filp, val) do_writeval(filp, val, 0)
|
||||||
@ -146,6 +142,7 @@ igt_simple_main
|
|||||||
igt_assert(ret != -1);
|
igt_assert(ret != -1);
|
||||||
junk->filp = fopen(path, junk->mode);
|
junk->filp = fopen(path, junk->mode);
|
||||||
igt_require(junk->filp);
|
igt_require(junk->filp);
|
||||||
|
setbuf(junk->filp, NULL);
|
||||||
|
|
||||||
val = readval(junk->filp);
|
val = readval(junk->filp);
|
||||||
igt_assert(val >= 0);
|
igt_assert(val >= 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user