| From: "Zach O'Keefe" <zokeefe@google.com> |
| Subject: selftests/vm: fix "add thp collapse file and tmpfs testing" for tmpfs |
| Date: Tue, 13 Sep 2022 14:25:17 -0700 |
| |
| In write_settings() and save_settings() we properly only read/write |
| /sys/block/<device>/queue/read_ahead_kb if the test file is not backed by |
| tmpfs. However, in get_finfo(), we unconditionally attempt to resolve the |
| major/minor device pair and search for device interface, which we fail to |
| do when the device is the null device (major 0), as is the case when |
| stat(2)'ing a tmpfs-backed file. |
| |
| Only resolve path to queue/read_ahead_kb when dealing with non-tmpfs |
| files. |
| |
| Link: https://lkml.kernel.org/r/20220913212517.3163701-1-zokeefe@google.com |
| Fixes: 64b9fb1fa904 ("selftests/vm: add thp collapse file and tmpfs testing") |
| Signed-off-by: Zach O'Keefe <zokeefe@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/vm/khugepaged.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/tools/testing/selftests/vm/khugepaged.c~selftests-vm-add-thp-collapse-shmem-testing-fix |
| +++ a/tools/testing/selftests/vm/khugepaged.c |
| @@ -453,6 +453,8 @@ static void get_finfo(const char *dir) |
| exit(EXIT_FAILURE); |
| } |
| finfo.type = fs.f_type == TMPFS_MAGIC ? VMA_SHMEM : VMA_FILE; |
| + if (finfo.type == VMA_SHMEM) |
| + return; |
| |
| /* Find owning device's queue/read_ahead_kb control */ |
| if (snprintf(path, sizeof(path), "/sys/dev/block/%d:%d/uevent", |
| _ |