“ clockource tsc unstable” หมายถึงอะไร


10

เมื่อใดก็ตามที่ฉันเห็นบูท Linux ฉันเห็นข้อความนี้:

tsc ไม่เสถียร (delta = NNNNNNNN ns)

โดยที่ NNNNNNNN เป็นจำนวนมากซึ่งอาจเป็นบวกหรือลบ

ข้อความนี้หมายความว่าอย่างไร ฉันควรจะกังวลเกี่ยวกับเรื่องนี้หรือไม่?


ผมคิดว่าtscหมายถึงการนับการประทับเวลา หากว่าช่วย
Der Hochstapler

นอกจากนี้จากสิ่งที่ฉันพบเกี่ยวกับข้อความออนไลน์คุณเห็นข้อความนี้บนเครื่องจริงหรือเสมือนจริง ดูเหมือนว่ามีความเกี่ยวข้อง
Der Hochstapler

ทั้งทางกายภาพและเสมือน ฉันได้รับข้อความนี้ในหลาย ๆ ระบบเมื่อฉันบูต Linux บนพวกเขา
bwDraco

ฉันได้รับข้อความตรงนี้/var/log/messageเมื่อเพิ่มตัวเลือก "acpi = off" ไปยัง/etc/grub.conf(เป็นkernel=ตัวเลือก) เมื่อฉันลบออกรีบูตข้อความหายไป CentOS 6 พร้อมเคอร์เนล: .6.32-279.19.1.el6.x86_64

คำตอบ:


8

ฉันเห็นข้อความนี้โดยสุจริตเป็นครั้งแรกในวันนี้และไม่มีเงื่อนงำความหมายจริง

ที่ถูกกล่าวว่าฉันอ่านบทความ 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) ฉันไม่คิดว่าฉันจะอยู่ห่างจากสมมติฐานของฉันมากเกินไป

ฉันสงสัยว่าข้อความหมายถึงเงื่อนไขที่สำคัญ และฉันยึดตามสมมติฐานที่คุณจะรู้ตอนนี้ถ้ามันสำคัญมาก


2
การอ้างอิงจากบทความเดียวกันซีพียูสมัยใหม่บางรุ่นยังมีตัวนับการประทับเวลาคงที่ : โปรเซสเซอร์ Intel ล่าสุดมีอัตราคงที่ TSC (ระบุโดยค่าสถานะ constant_tsc ใน Linux / proc / cpuinfo) ด้วยโปรเซสเซอร์เหล่านี้ TSC จะอ่านอัตราสูงสุดของโปรเซสเซอร์โดยไม่คำนึงถึงอัตราการทำงานของ CPU ที่แท้จริง
scai

คุณแนะนำให้ใช้ hpet แทน tsc หรือไม่?
CMCDragonkai

1
ฉันต้องการเพิ่มข้อมูล วันนี้ฉันเจอปัญหานี้กับเซิร์ฟเวอร์ซูเปอร์ไมโครของเรา ระบบปฏิบัติการคือ RHEL 6.5 และมีข้อความเดียวกัน และเซิร์ฟเวอร์นี้กำลังคลานด้วยความเร็วที่หอยทากในขณะนี้ เป็นเวลาหนึ่งชั่วโมงและการบู๊ตยังไม่เสร็จสมบูรณ์ ขั้นตอนต่อไปของฉันคือเปลี่ยนตัวนับและเพิ่มข้อมูลในไฟล์ grub.conf โดยไปที่โหมดช่วยเหลือ เนื่องจากโหมดผู้ใช้คนเดียวไม่ทำงาน
OmiPenguin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.