interrupt

QEMUを使用したカスタムPCIドライバの作成中に問題が発生する
interrupt

QEMUを使用したカスタムPCIドライバの作成中に問題が発生する

MSI割り込みを割り当てて処理できるLinuxドライバを作成したいと思います。現在、このnvec = pci_alloc_irq_vectors(pdev, 1, nvec, PCI_IRQ_ALL_TYPES)関数は-22を返します。 QEMUで電話をしていましたが、うまくmsi_init(&pciechodev->pdev,0,4,true,true,errp)いきました。しかし、デバッグ中にMSI割り込みが送信される前に値がmsi_enabled(&edu->pdev)0であることがわかりました。 これはQEMUのバグですか...

Admin

カーネルモジュールでARMユニバーサルタイマの割り込みハンドラを登録するには?
interrupt

カーネルモジュールでARMユニバーサルタイマの割り込みハンドラを登録するには?

現在、Raspberry Pi 5の汎用タイマータイマーの1つにカスタムハンドラーを登録しようとしていますが、残念ながら機能しません。 これまでに私がしたことは、デバイスツリーのタイマーエントリを見ることだけであり、上記の4つの割り込み、PPI 10、11、13、および14があります。 timer { compatible = "arm,armv8-timer"; interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TY...

Admin

Parrot OSのインストールの中断を解決するには? - common_interrupt: 1.55 ベクタ割り込みハンドラなし
interrupt

Parrot OSのインストールの中断を解決するには? - common_interrupt: 1.55 ベクタ割り込みハンドラなし

Parrot OSをインストールしようとしています。ただし、インストールすると中断メッセージが表示され、端末で停止します。 balena etcherを使用してParrot OSをフラッシュした後、Parrot OSで試してみる/インストールボタンを使用してインストールしようとすると、このような中断が発生して永久に停止します。 0.006525] __common_interuppt: 1.55 No irq handler for vector 続けて3xブレーキといいますが、1.55、2.55、3.55です。 Parrot Os Securityをインス...

Admin

LinuxソケットIOモード
interrupt

LinuxソケットIOモード

I/Oには3つのモードがあります。彼らはIO、割り込みIO、DMAをプログラムしています。 私が理解したように、プログラムIOはCPU使用中に待機を必要としますが、割り込みIOは本質的に非同期です。 Linuxの同期ソケットと非同期ソケットでどのIOモードを使用するのか、どのIOモードを使用するように設定できるのかはどこにありますか? TCPソケットを例に挙げます。 ...

Admin

カーネルワーカースレッドからスリープモードに切り替える
interrupt

カーネルワーカースレッドからスリープモードに切り替える

割り込みがジョブキューを介してジョブを延期する方法について読みました。 私が理解したのは、キュージョブをジョブキューとして中断し、カーネルワーカースレッドによって処理されます。 私の質問は、カーネルでタスクを実行することに関するものですworker_thread。 ジョブが自発的にスリープ状態になると、プロセスはworker_threadキュー内の他のジョブも実行しますか? ワーカー+ワーカースレッドが制御を非自発的に放棄した場合(たとえば、プリエンプティブスケジューリング)、再起動すると、ワーカースレッドは次のタスクを続行する前にタスクを完了しますか? ...

Admin

_PRTテーブルを使用した割り込み割り当て
interrupt

_PRTテーブルを使用した割り込み割り当て

PCI デバイス機能 1 が割り込みを受信できないという問題に直面しています。 ACPI BIOS共有PRTテーブルに基づいて、Linuxの起動中に割り込み(レガシーINTx)が割り当てられる方法を知りたいです。特に、lspciがこれらのIRQをリストする方法を知りたいです。この問題について助けてください。たとえば、次のようになります。_PRT対応するバス範囲はSSDTテーブルから来ます。 これはEX:_PRTテーブルとSSDTテーブルのバス範囲です。 Device (PCI3) { Name (_ADR...

Admin

プロセスはどのようにプログラムで割り込みに接続できますか?
interrupt

プロセスはどのようにプログラムで割り込みに接続できますか?

私は割り込みが処理を要求するカーネルに送られる信号であることを理解しています。場合によっては、プロセスを割り込み(キーを押す)に関連付けるドライバを備えたキーボードなどの物理デバイスがあります。しかし、タイマーや物理デバイスがない他のものはどうですか?たぶん私が間違っているかもしれませんし、誰かが私を修正してくれたらうれしいです。 ...

Admin

ラウンドロビンスケジューリングとコンテキスト切り替えは内部的にどのように機能しますか?
interrupt

ラウンドロビンスケジューリングとコンテキスト切り替えは内部的にどのように機能しますか?

ラウンドロビンスケジューリングを使用して、カーネルはさまざまなプロセス/タスクに時間を提供します。 タイマーがタイムアウトすると、カーネルがタイマーを初期化し、現在の操作が中断されてからカーネルが制御権を持つようになります。 カーネルは、新しいタスクをスケジュールするためにタイマータイムアウト割り込みを使用する必要があることをどうやって知ることができますか?スケジューラだけでなく、さまざまな目的で異なるタイマーを使用している場合はどうなりますか?さまざまな割り込みサービスルーチンはどこに行きますか?よろしくお願いします。 ...

Admin

timeコマンドは、4ミリ秒のタイマーティックからミリ秒をどのように計算しますか?
interrupt

timeコマンドは、4ミリ秒のタイマーティックからミリ秒をどのように計算しますか?

time他のUbuntuシステム(実際のハードウェアと仮想マシンの両方)のbashコマンドから時々ミリ秒を取得しCONFIG_HZ=250ます。real 0m0.001suser 0m0.001ssys 0m0.001s どうやってこれができますか? real編集:私はコマンドの始めと終わりで利用可能な高解像度の時間ソースを照会して、経過時間を正確に計算できることを認めますtime。 ただし、パフォーマンス上の理由からシステムコールの開始または終了に関するタイムソースクエリがないため、CPU時間は4ミリ秒の倍数であるタイマティック(タイマ...

Admin

上部でirqプロセスの詳細をどのように取得できますか?
interrupt

上部でirqプロセスの詳細をどのように取得できますか?

irq/21-xhci-hcdプロセスがCPUの90%を消費していることがわかりましたtop。さらに、ソフトウェア割り込み(si)の処理には多くのCPU時間がかかります。 これは組み込みLinuxにあります。 これがIRQ 21という意味ですか?それでは、lspci -vvvIRQ 21に関する追加情報を入手できますか? dmesgそれ以外の場合は、doやなどの他の方法を使用する必要がありますかwatch -n1 -d "cat /proc/interrupts"? どのカーネルモジュールが影響を受けるかを含む追加情報を得るための最良の方法は何ですか?どのカ...

Admin

カーネルドライバの作成 - 特定の割り込みピンの理解
interrupt

カーネルドライバの作成 - 特定の割り込みピンの理解

私はLinuxカーネルモジュール/ドライバを書く知識がありません。 基本的な例を見てみましょう。割り込みピンの1つのマイクロコントローラに接続された入力デバイスがあります。デバイスのボタンを押すと、マイクロコントローラでハードウェア割り込みが発生することがわかります。 ベアメタル開発者として、私は特定の割り込みが発生したときに割り込みベクトルがジャンプするアドレスに割り込みハンドラコードを配置します。 マイクロコントローラで実行されているLinuxカーネルがあり、入力デバイス用のカーネルドライバを作成したい場合は、カーネルを介して割り込みハンドラを登録する場...

Admin

Linuxカーネルの停止
interrupt

Linuxカーネルの停止

私はIntel(icelake)ベースのサーバーでLinuxカーネル4.19を使用しています。時々、Linuxが起動した直後(ログインプロンプトで)動作が停止することがあります(再起動時に50回程度)。シリアル端子やモニターでは何も反応しません。取り付けると、キーボードキャップロックインジケーターが点灯または消灯しません。 sysrq 要求も許可しません。回復する唯一の方法は、サーバーをリセットすることです。 デバッグしてデッドロックデバッグしようとしましたが、役に立ちませんでした。この問題は、10回または時には50回の再起動後にランダムに発生します。追跡ま...

Admin

割り込み数の修正 cat /proc/interrupt
interrupt

割り込み数の修正 cat /proc/interrupt

ご覧のとおり、コマンドを実行すると、cat /proc/interrupts2番目の列には、各デバイスドライバが各CPUに渡した割り込みの数が表示されます。 test@test:~$ cat /proc/interrupts CPU0 CPU1 0: 79 0 IO-APIC-edge timer 1: 9 17152 IO-APIC-edge i8042 4: 2 0 ...

Admin

ローカルタイマ割り込み数の変化を説明してください。
interrupt

ローカルタイマ割り込み数の変化を説明してください。

/proc/interruptsさまざまなCPU分離(IRQおよびプロセス)構成で指定されたワークロードを実行している間に、ローカルタイマー割り込みの数について報告された値(合計)に大きな違いは観察されませんでした。/proc/statsローカルタイマ割り込みの数は約20%です。 答え:私が知る限り、current_clocksource = hpetの場合、ローカルタイマー割り込みはコンパレータによって生成され、コンパレータは=比較(> =の代わりに)の後に割り込みをトリガします。これにより、「忘れ」により割り込みが発生します。過負荷がかかりました。...

Admin