This problem is caused by hd-idle watching /proc/diskstats, and if read / written blocks for the disk did not change after the last spindown was issued, it assumes the disk has not spun up. Since nothing is read / written during suspend / resume, this is a case not detected by hd-idle.
The rewrite by adelolmo (also called hd-idle) uses two approaches to try to workaround this problem:
- Send a spindown command anyways all three intervals.
- Restart itself via the systemd service unit after each suspend.
Both approaches are not really ideal, but maybe something like this can be implemented for the classic hd-idle, too?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This problem is caused by hd-idle watching /proc/diskstats, and if read / written blocks for the disk did not change after the last spindown was issued, it assumes the disk has not spun up. Since nothing is read / written during suspend / resume, this is a case not detected by hd-idle.
The rewrite by adelolmo (also called hd-idle) uses two approaches to try to workaround this problem:
- Send a spindown command anyways all three intervals.
- Restart itself via the systemd service unit after each suspend.
Both approaches are not really ideal, but maybe something like this can be implemented for the classic hd-idle, too?