real-time

Ubuntu Server 22.04、5.15では、リアルタイムデバッグRCUが停止します。
real-time

Ubuntu Server 22.04、5.15では、リアルタイムデバッグRCUが停止します。

AMD EPYC 8534PN(64C/128T)からCPUを取り外そうとしています。残念ながら、RCUが動作を停止し、サーバーがクラッシュすることを何度も目撃しました。何が間違っているのかわかりません。 競合は、サーバーに負荷がかかる場合にのみ発生します。通常、私はそこでビルドタスクを実行し、RT優先順位のあるタスク(統合テスト)を実行します。しかし、私が理解しているように、rcu_nocbs=8-63,72-127 irqaffinity=0-7,64-71 rcu_nocb_pollgrub を使用して設定し、IRQBALANCE_BANNED_CPU...

Admin

カーネルスレッドで高解像度の睡眠?
real-time

カーネルスレッドで高解像度の睡眠?

スリープ決定をスレッドに入れる正しい方法は何ですか? 私はデバイスドライバを書こうとしていますが、特定の人数のGPIO割り込み後にピンを高く保つ必要があります。 私の計画は、ピンを高く設定し、一定時間が経過するとピンを低く設定するカーネルスレッドを生成するGPIO割り込み用のカーネルモジュールを作成することです。 これはうまくいくでしょうか? ...

Admin

ネットワークエミュレーション(netem別)でのカーネルクロック速度の影響は何ですか?
real-time

ネットワークエミュレーション(netem別)でのカーネルクロック速度の影響は何ですか?

ネットワークシミュレーションを使いたいです(ネテム)の中PREEMPT-RTコア遅延時間とジッタを0.5ms±10%までシミュレートします。 それで、最初は内部コアクロック速度を少なくとも2000Hzに調整する必要があると思いました。これは、0.5ミリ秒の時間決定遅延を追加できることを意味するためです。 しかし、より低いコアクロックレートでも正常に動作するようです(実験的に測定)。いくつかの調査の後、私はこれがカーネル構成のチックなし設定またはダイナミックティックのためかもしれないと思いましたが、基本的にカーネルクロック速度がどのように機能するのか、そしてそ...

Admin

スケジューラによるpthreadの中断を防ぐことはできますか?
real-time

スケジューラによるpthreadの中断を防ぐことはできますか?

私は4コアARM CPUを使用して組み込みリアルタイムLinuxデバイスを作成しています。 10kHzでは周期的な計算が必要です。これはジッタがひどくなりすぎて失われてはなりません。私のPOSIXスレッドは、使用中のループからハードウェアが提供する10kHzトグルレジスタを読み込み、ビットがトグルされたときに計算を実行できます。 SCHED_RRスケジューラがpthreadを中断するのを防ぐために、特にこのスレッドのCPUアフィニティをコア2に設定し、優先順位を99(最大)に設定しました。他のスレッドの中には、CPU アフィニティが 2 以外のコアに設定され...

Admin

実際の日付/時刻を使用して一時停止を無視する省電力コマンドはありますか?
real-time

実際の日付/時刻を使用して一時停止を無視する省電力コマンドはありますか?

実際の日付/時刻を使用して一時停止を無視する省電力コマンドはありますか? echo a;sleep 3600;echo b 10分働いて2時間ラップトップを停止します。一時停止中に目が覚めると、「b」はすぐにではなく50分後にのみ印刷されます。 別のオプションは nA=`date +%s`;nB=$((nA+3600)) while((`date +%s`<nB));do sleep 1;done ところで、これを行うコマンドがあるかどうか疑問に思います。sleep --usedatetimecheck 3s 3600(3秒のように一時停止できる睡眠...

Admin

キューに入った後、時間ベースの送信で予約されたパケットをキャンセルする方法は?
real-time

キューに入った後、時間ベースの送信で予約されたパケットをキャンセルする方法は?

私は単一のイーサネットフレームを受信して​​から、1秒遅れ(その間にいくつかの処理を含む)後にデータを別のイーサネットフレームに送信する時間に敏感なネットワークアプリケーションを作成しています。 しかし、特に難しいのは、私ができる能力も必要だということです。キャンセルこの遅延間隔の間に異なるタイプの異なるメッセージが受信された場合、パケット送信は継続する。 正確に1秒の遅延を得るためにカーネルのソケットタイムスタンプ機能これと組み合わせる時間ベースのパケット転送。これら2つの機能を組み合わせることで、アプリケーションをユーザー空間に維持しながら、システム全体...

Admin

Linux RTリアルタイムシステムを作成するには、カーネルからどの機能を削除する必要がありますか?
real-time

Linux RTリアルタイムシステムを作成するには、カーネルからどの機能を削除する必要がありますか?

6.4.0私はLinuxカーネルとパッチを使ってLinuxリアルタイムシステムをカスタマイズしていますpatch-6.4.6-rt8。実行時にmake menuconfigリアルタイムのパフォーマンスを向上させるには、どの設定をオフにする必要がありますか?システムは主にロボットアームコントローラーとして機能します。 この時点でシステムを使用してcyclictest遅延効果をテストしたところ、ジッタが最小値2、最大値39でやや高いことがわかりました。 # cyclictest -t1 -p 80 -n -i 1000 -l 10000 # /dev/cpu_d...

Admin

データを要約するループでは、重大なタイミングジッタが発生します。なぜですか? imx8のみ問題がありますか?
real-time

データを要約するループでは、重大なタイミングジッタが発生します。なぜですか? imx8のみ問題がありますか?

Cで小さなアプリケーションを作成しました。 5MBの2つの文字バッファを割り当てます。 1000回繰り返す array1またはarray2のすべての要素はループ内で合計(交互)であるため、内部ループでは500万の追加が行われます。 この内部ループの時間を測定します(時計の鍛造)。 内部ループに必要な最小/最大時間と平均時間を確認してください。 驚くべきことに、IMX8のジッタ係数はほぼ1.6..2.0なので、1000個のループのうちの1回は約4.5ms、少なくともほぼ9msです。平均は約4.6ミリ秒ですが、時間がかかるのは1つまたは2つのループではありま...

Admin

特定のプロセスに関連するすべてのプロセスのPIDを見つける方法は?
real-time

特定のプロセスに関連するすべてのプロセスのPIDを見つける方法は?

他のプロセスのためにタスクを実行するプロセスのPIDやその他の情報をどのように見つけることができますか?kworkerたとえば、スレッドやカーネルの他のプロセスに対して作業を行う他のスレッド/プロセスについて話しています。 私のジレンマは、CPUアフィニティがCPU 0にバインドされたsched prio 99で実行されるリアルタイム予約プロセスを持っていますが、私の(SCHED_FIFO)コンピュータにCPU圧力を注入するときに重要なrtプロセスが重要ではない他のプロセスを先取りしないことです。プロセス。おそらく、とに-aオプションを指定したkworker...

Admin

PPSデバイスはどのくらい正確ですか?
real-time

PPSデバイスはどのくらい正確ですか?

私はタイミング同期作業をしており、システムにさまざまなエラーを注入することが時間同期に与える影響を測定したいと思います。私が理解したのは、LinuxシステムのPPSデバイスには、時間とシーケンスIDを提供する「assert」などのテキストファイルが関連付けられています。このタイムスタンプはどのくらい正確で信頼できますか? (源泉:https://docs.kernel.org/driver-api/pps.html) 文脈上、Linuxカーネルの/dev/pps0は私が言うデバイスであり、Intel I210 NICに接続されています。私はIntel I21...

Admin

プロセスがCPUを完全に占有する方法は?
real-time

プロセスがCPUを完全に占有する方法は?

私は組み込みLinuxシステム(kernel-5.10.24)を開発しています。予約されておらず、CPUを完全に占有するプロセスを取得しようとしています。 #define _GNU_SOURCE #include <sched.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> int main(int argc, char **argv...

Admin

ローカルホストのhttp待ち時間は大きく異なります。
real-time

ローカルホストのhttp待ち時間は大きく異なります。

10個のコアを持つMBP M1で実行されます。 1つのスレッドクライアント(wrk)と1つのスレッドサーバー(java)を実行します。 YouTubeもシステムで実行されています。負荷平均は10点満点で2点です。 GCに加えて遅延時間の大きな違いを引き起こす原因は何ですか? "percentile": 0, "latency_in_microseconds": 10 }, { "percentile": 50, "latency_i...

Admin

`journalctl -k -b -0`と `ps holstart 1`の間にギャップがあるのはなぜですか?
real-time

`journalctl -k -b -0`と `ps holstart 1`の間にギャップがあるのはなぜですか?

私は奇妙な観察を発見しました。 私がするなら:journalctl -k -b -0 | sed -e 's/^\(.\{76\}\).*/\1.../;3q' 次の内容が表示されます。 -- Journal begins at Sun 2022-08-07 12:06:55 CEST, ends at Mon 2023-02-20 08... Jan 09 15:07:39 magnet kernel: Linux version 5.10.0-20-amd64 (debian-kernel@... Jan 09 15:07:39 magnet kern...

Admin

新しい端末ウィンドウを開くのにかかる時間
real-time

新しい端末ウィンドウを開くのにかかる時間

ちょうどタイミングを確認しました。gnome-terminal新しいウィンドウを開くには約0.41〜0.45秒かかりますkitty。開くのに時間がかかりすぎて少し面倒です。マウス/キーボードイベントと同じ)。ウィンドウを開くプロセスをスピードアップする方法に関するいくつかの提案、またはより早く開くいくつかのターミナルの代替案が必要です(私はkittyこれを長年使用してきました)。たぶん誰かが自分のタイミングを共有し、私を何かと比較することができます(インターネットでこの問題に関する情報を見つけることができませんでした)。 これはMWEです: terminal...

Admin