PCI นิสัยใจคอคืออะไร?


10

ฉันได้ยินมากเกี่ยวกับ PCI นิสัยใจคอเมื่ออ่านเกี่ยวกับเคอร์เนล Linux แต่ไม่มีเว็บไซต์อธิบายหรือกำหนด PCI นิสัยใจคอ PCI นิสัยใจคอคืออะไร?


1
การเล่นโวหารเป็นเพียงความไม่สอดคล้องที่ไม่ง่าย มันไม่ใช่ศัพท์เทคนิค เราอาจต้องเห็นข้อความที่คุณอ้างถึงเพื่ออธิบายรายละเอียดเกี่ยวกับสิ่งที่พวกเขาพูด แม้ว่าจะมีไฟล์ที่ให้ไดรเวอร์ประจำสามารถใช้เพื่อแก้ไขนิสัยใจคอต่างๆที่พวกเขาได้เจอในช่วงหลายปีที่ผ่านมา แต่ท้ายที่สุดมันเป็นเพียงคำที่ไม่เป็นทางการที่ใช้ในความหมายเดียวกันกับคำภาษาอังกฤษทั่วไป
Bratchley

1
หากคุณอยากรู้อยากเห็นจริง ๆ ไฟล์ดังกล่าวมีความคิดเห็นดีอธิบายถึงสิ่งที่แต่ละงานประจำ
Bratchley

คำตอบ:


14

"นิสัยใจคอ" เป็นคุณลักษณะของอุปกรณ์ที่ไม่สอดคล้องกับการทำงานที่คาดหวัง

นี่คือตัวอย่างจากquirks.c:

/* The Mellanox Tavor device gives false positive parity errors
 * Mark this device with a broken_parity_status, to allow
 * PCI scanning code to "skip" this now blacklisted device.
 */
static void quirk_mellanox_tavor(struct pci_dev *dev)
{
        dev->broken_parity_status = 1;  /* This device gives false positives */
}

นี่คือ "การเล่นโวหาร" เนื่องจากอุปกรณ์รายงานข้อผิดพลาดปลอม เมื่ออุปกรณ์นี้ใช้งานได้ Quirk จะตั้งค่าคุณลักษณะบางอย่างที่ทำให้ส่วนอื่น ๆ ของเคอร์เนลทำหน้าที่แตกต่างกัน

แม้ว่านิสัยใจคอใน Linux kernel จะไม่เป็นเช่นนี้ แทนที่จะพยายามปิดใช้งานคุณลักษณะที่ได้รับผลกระทบบางคนพยายามที่จะหลีกเลี่ยงปัญหาเช่น:

/*
 * Some CS5536 BIOSes (for example, the Soekris NET5501 board w/ comBIOS
 * ver. 1.33  20070103) don't set the correct ISA PCI region header info.
 * BAR0 should be 8 bytes; instead, it may be set to something like 8k
 * (which conflicts w/ BAR1's memory range).
 */
static void quirk_cs5536_vsa(struct pci_dev *dev)
{
        if (pci_resource_len(dev, 0) != 8) {
                struct resource *res = &dev->resource[0];
                res->end = res->start + 8 - 1;
                dev_info(&dev->dev, "CS5536 ISA bridge bug detected "
                                "(incorrect header); workaround applied.\n");
        }
}

@Chris Down - ฉันจะสังเกตเห็นว่าอุปกรณ์ของฉันมี PCI quirks ได้อย่างไร และจะเกิดอะไรขึ้นถ้าฉันปิดการใช้งานPCI quirk workaroundsในเคอร์เนล
Martin Vegter

ขึ้นอยู่กับว่าคุณใช้อุปกรณ์ใด อาจมีข้อความในบันทึกของเคอร์เนลที่กล่าวถึงวิธีแก้ปัญหาแบบผิดปกติ (เช่นในตัวอย่างที่สองด้านบน) หรืออาจไม่มี วิธีที่แน่นอนเท่านั้นคือการมองหาquirks.cผู้ขายและ / หรืออุปกรณ์ การปิดใช้งานนิสัยใจคออาจมีผลกระทบที่แตกต่างกันขึ้นอยู่กับว่าวิธีแก้ปัญหาอย่างจริงจังคือ; มันอาจไม่มีผลข้างเคียงที่เห็นได้ชัดเจนหรืออาจทำให้อุปกรณ์ทำงานไม่ถูกต้อง
ruscur

ตัวอย่างหนึ่งของ "สิ่งที่จะเกิดขึ้น" อาจเป็นตัวอย่างเช่นไดรเวอร์ videocard ที่ไม่สามารถอ่าน videocard BIOS และในที่สุดก็ไม่สามารถกำหนดค่าได้อย่างถูกต้อง การมีCONFIG_PCI_QUIRKSเคอร์เนลกลับมาแก้ไขปัญหาได้
PF4Public

สิ่งที่จะเกิดขึ้นเฉพาะกับการเล่นโวหาร อาจเป็นได้ทุกที่จากไม่มีอะไรเกิดขึ้นกับมันแฮงค์ / ขัดข้องเครื่อง ในทางเทคนิคควันบางอย่างอาจถูกปล่อยออกมาจากส่วนประกอบบางอย่างเช่นกันซึ่งแย่กว่าการแขวน แต่ละรายการเป็นปัญหาเฉพาะของตนเองที่ไม่ควรนำมาพิจารณาว่าเกี่ยวข้องกับแบรนด์หรือรุ่นอื่น ๆ
old_timer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.