smp

    1

    1答えて

    私は別のコアの特定のポイントで実行中のスレッドを確認する必要があるカーネルドライバを作成しています。私のドライバーはコアごとに1つのカーネルスレッドを実行し、特定のタスクを実行するためにスレッドのいくつかを時々同期させる必要があります。デバッグログから私が見ることができることは、あるスレッドが他のスレッドをあまりにも多く待つことがあることです。他のコアに__preempt_countを保存して、s

    1

    3答えて

    Linuxカーネルコードを参照して、nr_cpusブートパラメータを理解していました。 smp.cコードでドキュメントを1として 、 (https://www.kernel.org/doc/Documentation/kernel-parameters.txt) [SMP] Maximum number of processors that an SMP kernel could s

    1

    2答えて

    SMP ARM上で、タスクレット、タイマー、およびkthreadで共有されるデータがあります。使用するスピンロックの種類は何ですか? Cheat Sheet For Lockingによれば、普通のようです。spin_lock()/spin_unlock()は仕事をします。しかし、これは純粋に下半分であるので、spin_lock_bh()で十分ではないでしょうか? ありがとうございます!

    0

    2答えて

    私はLinuxカーネルを検索するとき、私はLinuxがSMPアーキテクチャをサポートしていることを知っています。 しかし、私はAMPのためのlinuxに関する仕様は見つかりません。 linuxはAMPをサポートしていますか? これについて説明するためのドキュメントや仕様はありますか? 誰でも手伝ってください。

    1

    1答えて

    Linuxでは、2つの物理CPU(マルチコアではありません)があります.Xという名前のプロセスには多くのスレッドがあります。 質問:可能であれば、1つのCPUで実行されているXのスレッドと、同時に他のCPUで実行されている他のXのスレッドがありますか?

    13

    1答えて

    マルチプロセッサでは、各コアに独自の変数を設定できます。彼らは同じプロセスで同じ名前を持っていますが、彼らは異なったアドレスで異なる変数だと思いました。 しかし、カーネルはこれをどのように実装しているのでしょうか?すべてのpercpuポインタをデポジットするためにメモリを分けていますか?また、ポインタをある種のアドレスにリダイレクトするたびに、

    7

    1答えて

    ARM CortexでSMP linux(3.0.1-rt11)を実行しているという観測から始めて、ユニプロセッサであるA8ベースのSoC。私は、SMPサポートを無効にすることでパフォーマンス上の利点があるかどうかを知りたいと思っていました。そしてもしそうなら、それは私のドライバーと割り込みハンドラーにどんな影響を与えますか? 2つの関連トピック:スピンロックとカーネルプリエンプションを読みました

    6

    1答えて

    私が主に仕事をしているLinuxでは、CPUアイソレーションと呼ばれる手法を使用して、プロセスをプロセッサに効果的にロックし、プロセッサに何も実行されないようにします。私たちのカーネルの人たちは割り込みを処理するいくつかの魔法を使いました。 私が見つけた最も近いものは、プロセス/スレッドをプロセッサにバインドするように見える親和性の概念です。しかし、プロセッサがそのプロセス/スレッドを実行している

    1

    2答えて

    これは非常に基本的な場合は申し訳ありません。これは私がやっていることの単純化されたバージョンです。私はカーネルモジュールを書いています。実行中は2つの異なる物理CPUの2つのスレッドがあります。これらのスレッド間の通信を行うためにグローバル変数を使用しています。奇妙なことは、あるスレッドの書き込みがもう一方のスレッドだけで見られないことがあることです。理由は何でしょうか? 私はそれがメモリ障壁とお

    6

    1答えて

    ポストブート環境(OSなし)では、AP(他のすべてのコア/プロセッサ)のIPIを作成するために、どのようにBSP(最初のコア/プロセッサ)を使用しますか?本質的に、起動時に他のコアの命令ポインタをどのように起動し、設定しますか?