summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-01-21 02:51:13 +0100
committerLennart Poettering <lennart@poettering.net>2012-01-21 02:51:13 +0100
commit05aa9edde0f9f4077b8120389c93cb0134eda9c5 (patch)
treeaa56914cf9fca7a2d89cc96e7e7bc1fb04d66b73
parentaa001cd699a62a5a7a9b8a86c403bfe35fb73aa4 (diff)
readahead: don't monopolize IO when replaying
-rw-r--r--TODO3
-rw-r--r--src/readahead/readahead-replay.c8
2 files changed, 10 insertions, 1 deletions
diff --git a/TODO b/TODO
index 39d445d2db..2c7e2b02f0 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 00d57c3d7a..0c739c82be 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");