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:
Both approaches are not really ideal, but maybe something like this can be implemented for the classic hd-idle, too?