เมื่อใดก็ตามที่ฉันเห็นบูท Linux ฉันเห็นข้อความนี้:
tsc ไม่เสถียร (delta = NNNNNNNN ns)
โดยที่ NNNNNNNN เป็นจำนวนมากซึ่งอาจเป็นบวกหรือลบ
ข้อความนี้หมายความว่าอย่างไร ฉันควรจะกังวลเกี่ยวกับเรื่องนี้หรือไม่?
เมื่อใดก็ตามที่ฉันเห็นบูท Linux ฉันเห็นข้อความนี้:
tsc ไม่เสถียร (delta = NNNNNNNN ns)
โดยที่ NNNNNNNN เป็นจำนวนมากซึ่งอาจเป็นบวกหรือลบ
ข้อความนี้หมายความว่าอย่างไร ฉันควรจะกังวลเกี่ยวกับเรื่องนี้หรือไม่?
คำตอบ:
ฉันเห็นข้อความนี้โดยสุจริตเป็นครั้งแรกในวันนี้และไม่มีเงื่อนงำความหมายจริง
ที่ถูกกล่าวว่าฉันอ่านบทความ Wikipedia บนTime Stamp Counter (ซึ่งเป็นสิ่งที่tsc
ในข้อความข้อผิดพลาดหมายถึง) บทความกล่าวถึงปัญหากับ TSC ในวรรคสอง:
ตัวนับการประทับเวลามีจนกระทั่งเมื่อไม่นานมานี้เป็นวิธีการรับข้อมูลเวลา CPU ที่ยอดเยี่ยมความละเอียดสูงและต่ำ ด้วยการถือกำเนิดของซีพียูแบบมัลติคอร์ / ไฮเปอร์เธรดระบบที่มีหลายซีพียูและระบบปฏิบัติการ "จำศีล" ทำให้ TSC ไม่สามารถเชื่อถือได้เพื่อให้ได้ผลลัพธ์ที่ถูกต้อง- เว้นแต่ว่าจะได้รับการดูแลอย่างดีเพื่อแก้ไขข้อบกพร่องที่เป็นไปได้: อัตราการเกิดเห็บและการที่แกนประมวลผล (ตัวประมวลผล) ทั้งหมดมีค่าเหมือนกันในการบันทึกเวลา ไม่มีสัญญาว่าจะนับเวลาประทับของ CPU หลายตัวบนเมนบอร์ดตัวเดียว ในกรณีเช่นนี้โปรแกรมเมอร์สามารถรับผลลัพธ์ที่เชื่อถือได้โดยการล็อครหัสของพวกเขาไปยัง CPU ตัวเดียว แม้ว่าความเร็วของ CPU อาจเปลี่ยนแปลงเนื่องจากมาตรการประหยัดพลังงานที่ใช้กับระบบปฏิบัติการหรือ BIOS หรือระบบอาจถูกจำศีลและกลับมาทำงานในภายหลัง (รีเซ็ตตัวนับเวลา) ในกรณีหลังเหล่านั้นเพื่อให้มีความเกี่ยวข้องตัวนับจะต้องได้รับการปรับเทียบใหม่เป็นระยะ (ตามเวลาที่การสมัครของคุณต้องการ)
ในระยะสั้นในระบบที่ทันสมัย TSC ครับสำหรับการวัดเวลาได้อย่างถูกต้อง และนั่นคือสิ่งที่ข้อความกำลังบอกคุณ ในระบบของคุณ TSC ไม่ใช่แหล่งเวลาที่เสถียร
delta
ตั้งข้อสังเกตผมจะถือว่าเป็นรายงานเดลต้าเวลาระหว่างสองเห็บของ TSC ความหมายทุกครั้ง TSC นับขึ้น1
, NNNNNNNNN
นาโนวินาทีจะได้ผ่าน นั่นเป็นวิธีที่คุณมักจะรักษาเวลาที่แม่นยำ
เคอร์เนล linux จะตรวจสอบความถี่นี้หลายครั้ง (เพื่อตรวจสอบว่าแหล่งสัญญาณนั้นเสถียรหรือไม่) และได้ผลลัพธ์ที่แตกต่างกัน ดังนั้นข้อความ
ดังนั้นคุณต้องกังวลหรือไม่?
ฉันไม่รู้จริงๆ เพื่อความเข้าใจของฉันปัญหานี้เกิดขึ้นจากกระบวนการ "ย้าย" ระหว่างแกนประมวลผล (แกนกลางทุกอันอาจมีความถี่ TSC ที่แตกต่างกัน) หรือแกนเปลี่ยนความถี่แกนกลางของมัน (เช่นเดียวกับการประหยัดพลังงาน)
ส่วนใหญ่แล้วข้อความจะถูกพิมพ์เพียงเพราะเคอร์เนลตรวจพบปัญหานี้ด้วยตัวเองและตอนนี้จะปรับเปลี่ยนตามความเหมาะสม
และจากสิ่งที่ฉันอ่านในแหล่งเคอร์เนล ( arch/x86/kernel/tsc.c
) ฉันไม่คิดว่าฉันจะอยู่ห่างจากสมมติฐานของฉันมากเกินไป
ฉันสงสัยว่าข้อความหมายถึงเงื่อนไขที่สำคัญ และฉันยึดตามสมมติฐานที่คุณจะรู้ตอนนี้ถ้ามันสำคัญมาก
tsc
หมายถึงการนับการประทับเวลา หากว่าช่วย