PCIの癖とは何ですか?


10

Linuxカーネルについて読んでいるとき、PCIの癖についてよく聞きますが、PCIの癖を説明したり定義したりするWebサイトはありません。PCIの癖とは何ですか?


1
気まぐれは、直感的でない矛盾です。専門用語ではありません。彼らが言っていることを詳しく説明するために、おそらくあなたが参照しているテキストを見る必要があるでしょう。けれどもファイルがあるルーチンのドライバは、彼らが長年にわたってに様々な癖を回避するにはきたRANを使用することができます提供します。しかし、結局のところ、これは通常の英語の用語と同じ意味で使用される非公式な用語にすぎません。
Bratchley 2013

1
あなたが本当に興味があるなら、そのファイルは各ルーチンが何をするかを説明するかなりよくコメントされています。
Bratchley 2013

回答:


14

「Quirks」は、予想される操作に準拠していないと見なされるデバイスの属性です。

以下がその例です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 */
}

デバイスが誤ったエラーを報告するため、これは「癖」です。このデバイスが動作している場合、癖はカーネルの他の部分を異なる動作にする特定の属性を設定します(おそらく偽のエラーを無視するか、既知の問題を回避することによって)。

ただし、Linuxカーネルのすべての癖がこのようになっているわけではありません。影響を受ける機能を単に無効にするのではなく、一部は回避策を試みます。次に例を示します。

/*
 * 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の癖があることにどのように気付きますか?PCI quirk workaroundsカーネルで無効にするとどうなりますか?
Martin Vegter 2014

それは完全にあなたが持っているデバイスに依存します。デバイスによっては、(上記の2番目の例のように)奇妙な回​​避策が適用されたことを示すメッセージがカーネルログにあるか、そうでない場合があります。唯一確実な方法はquirks.c、ベンダーやデバイスを探すことです。癖を無効にすると、回避策の深刻度に応じてさまざまな影響が生じる可能性があります。目立った副作用がない場合や、デバイスが正常に動作しない場合があります。
ruscur 2017年

「どうなるか」の1つの例としては、たとえば、ビデオカードドライバーがビデオカードBIOSを読み取れず、結局それを適切に構成できないことがあります。持つCONFIG_PCI_QUIRKS問題カーネルの修正で背中を。
PF4Public 2018

何が起こるかは癖に固有です。何も起こらず、マシンがハングアップ/クラッシュする可能性があります。技術的には、一部のコンポーネントから煙が排出される可能性があり、これはハングよりも悪いです。各エントリは独自の特定の問題であり、他のブランドやモデルの問題に何らかの形で関連しているとは想定されていません。
old_timer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.