Hd-idle หยุดทำงานเมื่อฉันติดตั้งเคอร์เนล 5.11 HWE บน Ubuntu 20.04 ในที่สุดฉันก็พบว่า /proc/diskstats กำลังรายงานกิจกรรมการอ่านดิสก์ผี นี่คือสถิติสำหรับหนึ่งในไดรฟ์ของฉันที่ทำงานภายใต้ 5.4.0 ฉันได้ขีดเส้นใต้ตัวนับการอ่านดิสก์ที่ใช้โดย hd-idle เพื่อตรวจสอบกิจกรรมของดิสก์:
grep sdg /proc/diskstats
8 96 sdg 12758 4 793104 49835 446 0 7840 262 0 47720 39172 0 0 0 0
------
8 97 sdg1 12606 4 787936 49248 446 0 7840 262 0 47308 38712 0 0 0 0
8 105 sdg9 41 0 576 94 0 0 0 0 0 112 68 0 0 0 0
เคอร์เนล HWE (5.11) รายงานการอ่านดิสก์ที่เพิ่มขึ้นอย่างต่อเนื่องบนอุปกรณ์ดิบที่อาจจะ 5 ถึง 10 อ่านต่อวินาที และสิ่งนี้จะป้องกันไม่ให้ hd-idle หมุนไดรฟ์ลง โปรดทราบว่าไม่มีกิจกรรมการอ่านในแต่ละพาร์ติชัน
ตัวดิสก์ดูเหมือนจะไม่ได้ใช้งานจริง ๆ เพราะฉันสามารถบังคับให้มันหมุนลง (โดยใช้ 'hd-idle -t sdg') และมันไม่ได้หมุนกลับทันที
ดังนั้น ดูเหมือนว่าเคอร์เนล 5.11 HWE กำลังรายงาน I/O phantom read ที่ไม่ได้มีอยู่จริง อย่างที่ฉันพูดในหัวข้อ เคอร์เนล 5.4 ทำงานได้อย่างถูกต้อง
ไดรฟ์นี้เป็นหนึ่งใน หก ฮาร์ดไดรฟ์ที่เป็นสมาชิกของ ZFS zpool และทั้งหมดมีปัญหานี้ ไดรฟ์ระบบอื่นๆ ของฉันคือ NVME SSD และ SSD ขนาด 2.5 นิ้ว และฉันไม่รู้ว่าพวกเขารายงานการอ่านดิสก์ผีด้วยหรือไม่ เพราะพวกเขาไม่เคยว่างเลย
FWIW ฉันค้นหา launchpad และ bugzilla.kernel.org และไม่พบข้อบกพร่องหรือรายงานใดๆ ที่ตรงกับลักษณะการทำงานนี้
อัปเดต 01/17/22: ปัญหาเดียวกันนี้เกิดขึ้นบน Linux 5.8.0-63 นี่คือการสาธิตอื่น (บน 5.8.0) ของปัญหาที่ diskstats แสดงการอ่านที่เกิดขึ้นกับไดรฟ์ที่หมุนจริงและอยู่ในโหมดสลีป:
$ sudo hd-idle -t sdg
$hddtemp/dev/sdg
/dev/sdg: HGST HDN726040ALE614: ไดรฟ์อยู่ในโหมดสลีป
$ grep sdg /proc/diskstats
8 96 sdg 6272 2 48966 34365 345 1 5952 315 0 21544 34858 0 0 0 0 12 177
8 97 sdg1 3279 2 42088 29129 345 1 5952 315 0 16584 29445 0 0 0 0 0 0
8 105 sdg9 41 0 576 86 0 0 0 0 0 104 86 0 0 0 0 0 0
$นอน5
$ grep sdg /proc/diskstats
8 96 sdg 6302 2 48986 34367 345 1 5952 315 0 21580 34860 0 0 0 0 12 177
8 97 sdg1 3279 2 42088 29129 345 1 5952 315 0 16584 29445 0 0 0 0 0 0
8 105 sdg9 41 0 576 86 0 0 0 0 0 104 86 0 0 0 0 0 0
$hddtemp/dev/sdg
/dev/sdg: HGST HDN726040ALE614: ไดรฟ์อยู่ในโหมดสลีป