เมื่อโปรแกรมที่เกี่ยวข้องกับเวลา (เช่นntpd
) กำลังทำงานบนระบบ Linux เคอร์เนลจะเปลี่ยนเป็นสิ่งที่เรียกว่า "โหมดสิบเอ็ดนาที" (ดูhwclock
หน้าคน) โดยที่มันจะปรับปรุงนาฬิกาฮาร์ดแวร์จากนาฬิการะบบทุกสิบเอ็ดนาทีโดยอัตโนมัติ .
ใน SLES11 ฉันได้กำหนดเชิงประจักษ์แล้วว่าถ้าฉันตั้งค่านาฬิกาฮาร์ดแวร์ให้เป็นอะไรบางอย่างที่อยู่หลังนาฬิการะบบ 10 ชั่วโมงโหมด 11 นาทีดูเหมือนจะไม่สามารถทำให้นาฬิกาฮาร์ดแวร์ตรงกับนาฬิการะบบได้ แต่ถ้าฉันตั้งค่านาฬิกาฮาร์ดแวร์ 5 นาทีหลังนาฬิการะบบโหมด 11 นาทีจะเข้ากันได้อย่างสมบูรณ์แบบ
เห็นได้ชัดว่ามีการปรับปรุงสูงสุดที่โหมด 11 นาทีสามารถจัดการและฉันสงสัยว่ามันคืออะไร
ปรับปรุง:
นี่มันแปลก ...
อื่น ๆ ที่แสดงให้เห็นว่าการทดลองเมื่อฉันมีนาฬิกา HW รอบ 20 นาทีหลังนาฬิการะบบโหมด 11 นาทีจะตั้งค่านาฬิกา HW ที่จะว่า 30 นาทีหลังนาฬิกาของระบบ (!):
# date
Tue Dec 6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec 6 10:17:16 EST 2011
# hwclock --show
Tue Dec 6 09:56:06 2011 -0.156551 seconds
#
# date
Tue Dec 6 10:23:09 EST 2011
# hwclock --show
Tue Dec 6 10:01:58 2011 -0.535772 seconds
#
# date
Tue Dec 6 10:34:28 EST 2011
# hwclock --show
Tue Dec 6 10:04:27 2011 -0.192025 seconds
ปรับปรุง:
ฉันวิ่งข้ามสิ่งนี้: https://bugs.archlinux.org/task/27408ซึ่งบอกเป็นนัย ๆ ว่าดีหรือไม่ดีเคอร์เนลจะไม่อัปเดตนาฬิกาฮาร์ดแวร์เมื่อเวลานาฬิกาฮาร์ดแวร์อยู่ไกลจากเวลานาฬิการะบบมากเกินไป