[PATCH] readahead02: Fall back to the parent disk's BDI for partitions
Victor Cheng-Yen Yang via ltp <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
Partitions (e.g. mmcblk0p3) do not have their own BDI sysfs entry; the BDI belongs to the parent disk. In sysfs a partition is a subdirectory of its disk, so retry one level up. That resolves for every partition naming scheme without parsing the device name. Without this fix, setup_readahead_length() silently returns the default readahead_length, causing lots of readahead() calls per test case and a multi-hour runtime on MMC-backed FPGA boards. Signed-off-by: Victor Cheng-Yen Yang <cyyang772-MUIXKm3Oiri1Z/[email protected]> --- testcases/kernel/syscalls/readahead/readahead02.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/syscalls/readahead/readahead02.c b/testcases/kernel/syscalls/readahead/readahead02.c index b65213ad0..6707a1c63 100644 --- a/testcases/kernel/syscalls/readahead/readahead02.c +++ b/testcases/kernel/syscalls/readahead/readahead02.c @@ -399,8 +399,14 @@ static void setup_readahead_length(void) backing_dev = basename(tmp); sprintf(sys_bdi_ra_path, "/sys/class/block/%s/bdi/read_ahead_kb", backing_dev); - if (access(sys_bdi_ra_path, F_OK)) - return; + + if (access(sys_bdi_ra_path, F_OK)) { + /* Partitions use the parent disk's BDI sysfs entry */ + snprintf(sys_bdi_ra_path, sizeof(sys_bdi_ra_path), + "/sys/class/block/%s/../bdi/read_ahead_kb", backing_dev); + if (access(sys_bdi_ra_path, F_OK)) + return; + } SAFE_FILE_SCANF(sys_bdi_ra_path, "%d", &orig_bdi_limit); -- 2.34.1 -- Mailing list info: https://lists.linux.it/listinfo/ltp