readahead: don't monopolize IO when replaying

This commit is contained in:
Lennart Poettering 2012-01-21 02:51:13 +01:00
parent aa001cd699
commit 05aa9edde0
2 changed files with 10 additions and 1 deletions

3
TODO
View File

@ -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

View File

@ -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");