問題タブ [irq]
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.
c++ - IRQ 8 が機能しない...ハードウェアかソフトウェアか?
まず、ビンテージ コンピューター グループのプログラムを作成します。私が書いているのは特に MS-DOS 向けであり、Windows 向けではありません。私の現在のプログラムは、8086 ラインではなく、より新しいシステム用のものであるため、IRQ 8 を使用する予定でした。これにより、割り込みレートを 2/秒から 8192/秒 (2、4、8、16、等...)
何らかの理由で、新しい古いシステムでのみ (奇妙に聞こえますが)、動作していないようです。エミュレーションと私がアクセスできる 386 システムでは問題なく動作しますが、私が所有する P3 システム (GA-6BXC MB w/P3 800 CPU) では動作しません。
コード
割り込みの設定
割り込みの最後に
プログラムを終了するとき
コードに問題の原因となるものは何もありません。しかし、それは意味がないようです。私はその情報を完全に信頼しているわけではありませんが、MSD は IRQ 8 を RTC カウンターとして「報告」し、それが存在し、正常に動作していると述べています。後のシステムがベクトルを移動した可能性はありますか? IRQ 8 はベクトル 0x70 であることがわかりますが、私の Pentium III システムでは割り込みがトリガーされません。ベクトルが変更されたかどうかを確認する方法はありますか?
linux - マルチプロセッサ コンピュータの Linux シェルはキーボード入力をどのように読み取るのですか?
このドキュメントを読んだ後、キーボード入力が何らかの割り込みを指すirq 1をアクティブにすることがわかりました。次に、プロセッサが入力をデコードし、別の処理を行います。
My question
他のプロセッサが割り込みを処理する場合、シェルがキーボード入力を知る方法は何ですか?
例えば:
プロセッサ A はシェルを実行しています
プロセッサ B が割り込みを処理します。
c - disable_irq および enable_irq エラーを使用して C プログラムをコンパイルすると、lib linux/irq.h が見つかりません
enable_irq と disable_irq を目標とする C プログラムを作成しようとしています。そのような linux/irq.h を含めました。
そしてコンパイルすると: gcc myProgram.c -o myExecutable
エラーがあります:致命的なエラー:linux/irq.hファイルまたはフォルダーが見つかりません
どのパッケージをインストールする必要がありますか? 私はarchLinuxを使用しています。
linux - spin_lock_irqsave 内で printk を呼び出しても安全ですか?
私は次のようなコードを書きました:
非中断コンテキストにあります。
このコードを実行していますが、クラッシュが見られないため、安全に「見えます」。しかし、これが本当に安全なコードかどうかはわかりません。1/100000 の確率でシステム クラッシュを引き起こす可能性があるためです。
さらに、spin_lock_irqsave 内で "sleep" 関数を呼び出すことが安全かどうか (非割り込みコンテキストで) 知りたいです。
dispatch - FwpmEngineOpen fails at dispatch level
I am trying to add a WFP filter while holding an NDIS RW lock, but FwpmEngineOpen or FwpmTransactionBegin functions fail. Is there a limitation that prevents these functions to work at Dispatch level?
Thanks!
linux - Linux での smp アフィニティ設定
仮想マシン システムで割り込み (irq 75) の負荷を分散したいと考えています。64 ビットの redhat 5.8、カーネル 2.6.18 が搭載されています。仮想マシンには 8 個の CPU があります。
私が実行すると:
IRQ 75 が CPU0 のみで使用されていることがわかりました。次に、irq 75 の smp_affinity を変更しました。
しかし、irq 75 の割り込みが CPU0 のみを使用していることがわかりました。
CPU 間の IRQ バランスはありません。すべての割り込み (irq 75) をすべての CPU に分配したいのですが、何か問題がありますか?
performance - プロセスの cpu% に irq% を含める必要がありますか?
マルチコア サーバー上の Web アプリケーションのサービス デマンドを計算したいと考えています。そのために、特定の数のユーザーに対してアプリケーションの負荷テストを実行し、テスト期間中の cpu% を記録します。負荷テストが完了すると、スループットが取得され、利用率の法則を使用してサービスの需要が計算されます。プロセスの cpu% には usr% と sys% のみが含まれますが、irq% は全体の cpu% に含まれ、プロセスごとの cpu% には含まれません。しかし、irq% が多数のクライアントによってアクセスされているアプリケーションに起因する場合は、それを含める必要があります。そうしないと、ボトルネック分析が不正確になる可能性があります。場合によっては、irq% がプロセスの cpu% の 8% を超えて構成されます。
c - Linux カーネルの奇妙なデッドロック
私は通常、デッドロックは、2 つの異なるスレッド (CPU) で 2 つの異なるロックを取得し、他方のロックを互いに保持する競合である可能性があると考えています。
しかし、Linux カーネルの lockdep はそうではないと教えてくれます:
これが最初のものです:
ここで、lock_irq_serial は spin_lock です。このロックは、irq_work インフラストラクチャ内でも使用されます。
他の部分は次のとおりです。
何もしない場所。irq_work でのスピンロックと、他の場所 (sysfs 書き込みなど) でのロックにも問題があると思います。これがデッドロック シナリオである理由を詳しく説明できる人はいますか?
linux - Linux request_threaded_irq irq 番号
既存の I2C モジュールを使用する単純な Linux カーネル モジュールを作成しようとしています。既存の i2c モジュールは irq 番号 (構造体を介して渡されるi2c_board_info
) を必要とし、i2c モジュールはそれを最初のパラメーターとして に渡しますrequest_threaded_irq(...)
。
渡す irq が定期的に (たとえば、100 ミリ秒ごとに) トリガーされるようにしたいのですが、タスクレットが適切な方法だと思いましたが、タスクレットを irq 番号に変換する方法がわかりません。に渡されrequest_threaded_irq()
ます。私はこれについて間違った方法で進んでいますか?私がしようとしていることをする方法さえありますか?