From 05aa9edde0f9f4077b8120389c93cb0134eda9c5 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 21 Jan 2012 02:51:13 +0100 Subject: [PATCH] readahead: don't monopolize IO when replaying --- TODO | 3 +++ src/readahead/readahead-replay.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 39d445d2d..2c7e2b02f 100644 --- a/TODO +++ b/TODO @@ -20,6 +20,9 @@ Bugfixes: * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point. Features: + +* document the exit codes when services fail before they are exec()ed + * use the rtc which has: /sys/class/rtc/*/hctosys == "1" as the system RTC * rework namespace support, don't use pivot_root, and mount things after creating the namespace, not before diff --git a/src/readahead/readahead-replay.c b/src/readahead/readahead-replay.c index 00d57c3d7..0c739c82b 100644 --- a/src/readahead/readahead-replay.c +++ b/src/readahead/readahead-replay.c @@ -186,7 +186,13 @@ static int replay(const char *root) { if (on_ssd) prio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_IDLE, 0); else - prio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 7); + /* We are not using RT here, since we'd starve IO that + we didn't record (which is for example blkid, since + its disk accesses go directly to the block device and + are thus not visible in fallocate) to death. However, + we do ask for an IO prio that is slightly higher than + the default (which is BE. 4) */ + prio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 2); if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), prio) < 0) log_warning("Failed to set IDLE IO priority class: %m"); -- 2.30.2