The drop_caches sysctl has a max value of 4, so writing 7 to it just
fails. Avoid the earlier two-writes problem by seeking to the
beginning between writes.

Signed-off-by: Petri Latvala <[email protected]>
---
 lib/intel_os.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/intel_os.c b/lib/intel_os.c
index b9f970d..cb3b062 100644
--- a/lib/intel_os.c
+++ b/lib/intel_os.c
@@ -299,11 +299,16 @@ void intel_purge_vm_caches(void)
        if (fd < 0)
                return;
 
+       /* BIT(2): Be quiet. Cannot be combined with other operations,
+        * the sysctl has a max value of 4.
+        */
+       igt_ignore_warn(write(fd, "4\n", 2));
+       igt_assert(lseek(fd, 0, SEEK_SET) == 0);
+
        /* BIT(0): Drop page cache
         * BIT(1): Drop slab cache
-        * BIT(2): Be quiet in future
         */
-       igt_ignore_warn(write(fd, "7\n", 2));
+       igt_ignore_warn(write(fd, "3\n", 2));
        close(fd);
 }
 
-- 
2.9.3

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to