問題タブ [pci-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2887 参照

linux - MMIO 読み取り/書き込みレイテンシ

MMIO の読み取り/書き込みレイテンシが異常に高いことがわかりました。誰かが私にいくつかの提案をしてくれることを願っています。

カーネル空間で、PCIe デバイスの BAR0 アドレスの 4 バイト値を読み取る簡単なプログラムを作成しました。デバイスは PCIe Intel 10G NIC で、Xeon E5 サーバーの PCIe x16 バスに接続されています。rdtsc を使用して、MMIO 読み取りの開始から終了までの時間を測定します。コード スニペットは次のようになります。

(end, init) 間の経過時間は 1us 未満であると予想しています。結局のところ、PCIe データ リンクを通過するデータはわずか数ナノ秒であるはずです。ただし、私のテスト結果は、MMIO PCIe デバイスの読み取りを行うために少なくとも 5.5use を使用していることを示しています。これが合理的かどうかは疑問です。コードを変更してメモリ バリア (rmb) をリモートにしますが、それでも約 5 us のレイテンシが発生します。

このホワイト ペーパーでは、PCIe レイテンシの測定について説明します。通常は 1us 未満です。www.cl.cam.ac.uk/~awm22/.../miller2009motivating.pdf MMIO アクセスの待ち時間を短縮するには、カーネルやデバイスなどの特別な構成を行う必要がありますか? または、以前にこれを行った経験がある人はいますか?

0 投票する
1 に答える
724 参照

linux - SCSI のホスト、ID、チャネル番号を取得できない

ホスト、チャネル番号、ID 番号、SCSI デバイスの LUN を表示するプログラムを作成しています。

それに関する情報を提供します。しかし、私はCプログラムを介して印刷したい。ベンダー ID、デバイス タイプ、リビジョン レベルを取得していますが、 lun 、バス番号などは取得していません。

ioctllun、バス、ID 番号を取得するコマンドはありますか?

0 投票する
1 に答える
2789 参照

winapi - Windows の API による PCI 座標の取得 (ユーザー モード)

Windows c/c++ API (PnP Configuration Manager API など) を使用して、デバイスの PCI 座標 (バス/スロット/関数番号) を取得する方法はありますか? カーネル モードでそれを行う方法は既に知っています。ユーザー モード ソリューションが必要です。私のターゲット システムは Windows XP-32 ビットです。

0 投票する
2 に答える
5218 参照

linux - カーネルに PCI デバイス ID の再読み取り/再初期化を強制する方法は?

私のマシン (Linux カーネル 3.2.38 を実行) の起動時に、PCI デバイスのサブシステム ID (サブデバイスとサブベンダー ID) が間違っています。システムがまだ起動している間に PCI デバイスを物理的に抜き差しすると (つまり、ホットプラグ)、正しい ID が取得されます。

取得した間違ったサブデバイス ID とサブベンダー ID は、デバイスのデバイス ID とベンダー ID と同じであることに注意してください (以下の lspci 出力の最初の 2 行を参照してください)。

以下は、デバイスのホットプラグ前後のlspci -vvnnの出力です。

ホットプラグ前:

ホットプラグ後:

私の質問:デバイスをホットプラグせずに ID を修正する方法はありますか? たとえば、PCI バスの再スキャン/再列挙/再構成を実行するなどして、カーネルに PCI デバイス ID の再読み取りを強制しますか?

どんな助けでも大歓迎です。ありがとう。

PS。この問題は、UEFI 内部シェルで起動した場合でも存在するため、実際にはカーネル/ソフトウェアに関連していないことに注意してください。

PPS。この場合の PCI デバイスはMEN F206Nで、「私のマシン」はMEN F22P です。

0 投票する
1 に答える
1174 参照

c - sys/bus/pci/device/ ディレクトリを開けません

デバイスのリソース ファイルを読み込もうとしていますmmapが、デバイス レジスタを読み込もうとしていますが、ファイルの場所のエラー プロンプトを開こうとすると、NO such file or directoryと表示されます。chmod 666 を使用してファイルのアクセス許可を変更しました。ファイルを開くために使用しているコード:

ファイルが存在し、cat ユーティリティを使用して読み取ることができます。

0 投票する
1 に答える
809 参照

linux - Linux での PCI バス負荷測定

PCIバス(PCI-e)に複数のデバイスが接続されたLinux(3.12)システム(x86-64)があります。現在の状況と別のデバイスをバスに接続したときの PCI バスの負荷を測定して違いを確認したいのですが、方法がわかりません。これを行う方法はありますか?

0 投票する
1 に答える
770 参照

c# - Adlink PCI-7250 イベントコールバック

デジタル入力のいずれかが高くなったときに PCI-7250 (データ取得カード) からイベントコールバックを取得する単純な C# を作成しました。これが私のコードです:

実行すると、実行時にいくつかの乱数を投げ続け、最終的にクラッシュします。EventType (DASK.DBEvent) と関係があると思います。マニュアルを読みましたが、DASK.DBEvent については何も言及されていません。 .

よろしければアドバイスお願いします。

0 投票する
4 に答える
3653 参照

linux - ユーザー空間からのLinuxでのpciデバイス情報へのアクセス

プログラムでユーザー空間から pci デバイス ツリー情報にアクセスしたいと考えています。ルート コンプレックスとそれに接続されているデバイスのように。どうすればよいか教えてください。

よろしく、 プラディープ

0 投票する
1 に答える
480 参照

hardware-interface - PCI Express でデバイスを開けませんでした。PCIE_open に失敗しました

Intel DE2i-150 ボードを使用しており、yocto os を搭載した Intel atom プロセッサと Nios II プロセッサを搭載した fpga を搭載しています。yocto から fpga ボードにアクセスしようとしています。最初は通信できましたが、他のインストールが原因で PCIE_open が機能せず、「Counld not open device」というエラーが表示されます。このフレーズは、私のコードのどこにも定義されていません。ドライバーコードも使用しましたが、同じエラーが発生しました。以前は動作していました。何が起こっているのかわかりません。これに関して私を助けてください。