การเจรจาต่อรองความกว้างของลิงค์ PCI-E เกิดขึ้นที่ไหน?


8

ฉันพยายามวินิจฉัยการ์ด PCI-E ที่มีประสิทธิภาพต่ำในระบบของฉันและฉันรู้ว่ามันกำลังเจรจากับความกว้างของลิงก์ที่ไม่ถูกต้อง โดยเฉพาะจากการวิ่งlspci -vvฉันเห็น:

LnkCap: Port #1, Speed 8GT/s, Width x8, ASPM L1, Exit Latency L0s <4us, L1 <4us
        ClockPM- Surprise- LLActRep- BwNot-

ในขณะที่

LnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-

คำถามของฉันคือ: การเจรจานี้เกิดขึ้นที่ระดับฮาร์ดแวร์หรือระดับซอฟต์แวร์หรือไม่ อีกวิธีหนึ่งการ์ดจะต่อรองโดยตรงกับสล็อต PCI-E หรือเกิดเหตุการณ์นี้ขึ้นที่ใดที่หนึ่งในไดรเวอร์หรือไม่

(หากนี่เป็นคำตอบที่ชัดเจนโปรดยกโทษให้ฉัน ... หลังจากพยายามวิเคราะห์สิ่งนี้เป็นเวลาหนึ่งสัปดาห์จิตใจของฉันจะทอดไปนิดหน่อย)

คำตอบ:


17

มันทำที่ระดับไฟฟ้าไม่ใช่โดยซอฟต์แวร์ การลงทะเบียนทั้งสองที่คุณได้ระบุไว้ข้างต้น LNK_CAP และ LNK_STA เป็นสิ่งที่คุณจดบันทึกไว้อย่างถูกต้องว่า 'นี่คือสิ่งที่ลิงก์สามารถใช้' และ 'สถานะปัจจุบันที่นี่' นอกจากนี้ยังมี SLT_CAP และ SLT_STA ซึ่งอาจคุ้มค่ากับการดูว่าเป็น 'ช่อง' ที่ระบุในเครื่อง

ข้อมูลจำเพาะ PCIe กำหนดเครื่องLTSSM - Link Training และ Status State ที่ระดับ PHY / อุปกรณ์นี่คือสิ่งที่กำหนดความเร็วสูงสุดทั้งอุปกรณ์ที่รองรับความกว้างลิงก์สูงสุดที่อุปกรณ์ทั้งสองรองรับและนี่ก็เป็นที่ซึ่งการกลับขั้ว / การกลับขั้วเลนถูกจัดการ (เพื่อทำให้โครงร่างง่ายขึ้นสำหรับเรา / N เพื่อสลับเป็นอื่น ๆ )

ป้อนคำอธิบายรูปภาพที่นี่

อุปกรณ์ส่งชุดสัญลักษณ์ที่เป็นที่รู้จักและมีการสั่งซื้อซึ่งกันและกันและฮาร์ดแวร์ทำงานเพิ่มขึ้นจาก 2.5GT / s มีคำสั่งเปลี่ยนความเร็วที่สามารถส่งถึงกันได้และนี่คือที่ตั้งค่าการปรับสมดุลช่องสัญญาณด้วย

หากคุณเชื่อมโยงด้วยความเร็วที่ไม่ถูกต้องอาจเป็นไปได้ว่าพอร์ตราก PCIe ถูกกำหนดค่าไม่ถูกต้องหรือมีปัญหาเรื่องความสมบูรณ์ของสัญญาณบังคับให้ใช้ความกว้างลิงก์ที่ต่ำกว่า จากประสบการณ์ของฉันถ้าคุณเชื่อมต่อที่ 5 GT / s แทนที่จะเป็น 8 GT / s นั่นเป็นเรื่องของ SI มากกว่า - การเชื่อมโยงที่ x4 8 GT / s แทนที่จะเป็น x8 8 GT / s ดูเหมือนว่าเป็นปัญหาการกำหนดค่า หรืออาจเพิ่มการ์ดลงในช่องที่ไม่รองรับความกว้าง x8

ความสามารถของรูทคอมเพล็กซ์ลงทะเบียน (Offset 04h) จะเปิดเผยความกว้างสูงสุดที่รองรับซึ่งอาจช่วยในการวินิจฉัยของคุณ IIRC, -x จะถ่ายโอนพื้นที่กำหนดค่า 4K แรก, -xx หรือ -xxx จะถ่ายโอนพื้นที่ปรับแต่ง PCIe ที่ขยายเพิ่ม หากคุณถ่ายโอนพื้นที่การตั้งค่าทั้งหมดของคุณที่นี่ / pastebin ฉันสามารถขุดมันให้คุณได้ แต่ Linux ทำหน้าที่ถอดรหัสถอดรหัสที่ลงทะเบียนได้ดี


2
ฉันไม่แน่ใจว่าคำตอบนี้น่าตื่นเต้นอะไรมาก - มันละเอียดมาก (จริงจังนี่สวยมากและฉันชอบเรียนรู้สิ่งใหม่) หรือช่วยฉันแก้ปัญหาได้ภายใน 5 นาที ฉันสิ้นสุดต้องปรับเปลี่ยนการกำหนดค่าบนกระดานของฉัน - มันเป็นบอร์ด dev และดูเหมือนว่ามันได้รีเซ็ตในบางจุด
tonysdg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.