問題タブ [printk]

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 投票する
1 に答える
2808 参照

linux - spin_lock_irqsave 内で printk を呼び出しても安全ですか?

私は次のようなコードを書きました:

非中断コンテキストにあります。

このコードを実行していますが、クラッシュが見られないため、安全に「見えます」。しかし、これが本当に安全なコードかどうかはわかりません。1/100000 の確率でシステム クラッシュを引き起こす可能性があるためです。

さらに、spin_lock_irqsave 内で "sleep" 関数を呼び出すことが安全かどうか (非割り込みコンテキストで) 知りたいです。

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

c - printk() がカーネルモジュールの init/exit メソッドでしか機能しないのはなぜですか? (プライオリティは問題ないはずです)

私の目標は、カーネル モジュールを作成することです。フリーソフトウェア マガジンのメモリ チュートリアルに従っています。

チュートリアルは問題なく動作します。コードをコンパイルできます。でロードするとinsmod、カーネル<1>Inserting memory moduleは期待どおりに出力されます。rmmodカーネルを使用してモジュールを削除すると、<1>Removing memory module.

デバッグの目的でprintk()、他のメソッドに追加しようとしています。しかし、それらは決して印刷されません。

すべてのメッセージの優先度は です<1>

私は次の方法でデバイスに書き込みます:echo -n test1234 > /dev/memory そしてcat /dev/memory、データを取り戻すために使用します。

cat /var/log/messagesdmesgもう情報を印刷しないでください

[ 5550.651221] <1>Inserting memory module [ 5550.655396] <1>Inserting memory module !!!!!!!!!!!!!!! [12230.130847] <1>Removing memory module

cat /proc/sys/kernel/printk 7 4 1 7

uname- a Linux generic-armv7a-hf 3.14.0-163850-g775a3df-dirty #2 SMP Mon Jan 12 13:53:50 CET 2015 armv7l GNU/Linux

andメソッドprintk()でのみ機能するのはなぜですか?initexit

よりも変数値を出力する (より良い) 方法はありますprintk()か?

ここにコード:

0 投票する
0 に答える
217 参照

linux - Linuxカーネルprintkはメッセージをスキップできますか?

vprintk_emitカーネルでメッセージを入れてlog_bufferから印刷することがわかりますconsole_unlock->call_console_driver。しかし、コンソール (UART) が実際に送信できるよりも多くのメッセージを送信する場合、どのような動作になりますか? メッセージを log_buffer に配置する近くにブロッキング プリミティブが見当たりません。つまり、log_buf の先頭にあるいくつかのメッセージを削除して、新しい (リング バッファ) を配置するということですか? では、printk メッセージが失われる可能性があるということですか? 私はカーネル4.1について話している http://lxr.free-electrons.com/source/kernel/printk/printk.c#L1613

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

c - printk console_loglevel が minimum_console_loglevel よりも低くなる可能性があるのはなぜですか?

私のLinuxディストリビューションはRHEL7で、カーネルのバージョンは3.10.0です。

printkドキュメントから、 minimum_console_loglevelの定義 を知っています。

  • minimum_console_loglevel: console_loglevel を設定できる最小 (最高) 値

の現在のログ レベルを照会していますprintk:

現在のコンソール ログ レベルを変更します。

私の理解では、minimum_console_loglevel1であるため、 console_loglevelを変更すると失敗する0はずです。しかし、の出力から、それは成功のようです。

printk.cコード から:

また、console_loglevel の値は変更すべきではないと思います。

0 投票する
0 に答える
146 参照

arm - これらの printk が dmesg に表示されないのはなぜですか?

.S ファイルにいくつかのデバッグ メッセージを提供しましたが、dmesg 出力に表示されることを期待していました。

以下はスニペットです:

KVM ゲストを起動した後、PRINTK が dmesg に出力されるはずだと思っていましたが、表示されませんでしたか?