問題タブ [rcu]
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 - hlist_for_each_entry_rcu に追加のポインターを渡す必要がありますか?
LWNは、RCU で次の例を示します。
RCU で保護された hlist を購読することも、循環リストに似ています。
クイック クイズ 3 : list_for_each_entry_rcu() には 1 つしか必要ないのに、hlist_for_each_entry_rcu() に 2 つのポインターを渡す必要があるのはなぜですか?
回答: hlist では、先頭に遭遇するのではなく、NULL をチェックする必要があるためです。(単一ポインタ hlist_for_each_entry_rcu() をコーディングしてみてください。いい解決策を思いついたら、それはとても良いことです!)
hlist_for_each_entry_rcu() の古いバージョンを参照する必要があると思います。rculist.h
ヘッダーの現在のバージョン (3.13.0) は、実際には 3 つの引数を取る定義を示しているhlist_for_each_entry_rcu
ため、4 番目のポインターを追加する必要がなくなり、それほど難しくないようです。発明:
現在の rculist.h で指定されている何かまたはそれ以上のバージョンが欠けているのでしょうか?
__rcu_dereference_check
追加のポインターが作成される場所で、微妙なことが起こっていることがわかります。
c - RCU リーダー セクションはプリエンプションからどのように保護されますか?
( LWNの記事より)
RCU 更新操作は、各 CPU がコンテキストを切り替えたことをアサートするために synchronize_rcu() を実行するため、各 RCU リーダーはそのジョブを完了しました。しかし、RCU はリーダーが横取りされないことに依存しなければなりません。実際、LWN は次のように述べています。
この単純なアプローチは、RCU 読み取り側クリティカル セクション全体でプリエンプションが無効になっているカーネル、つまり、CONFIG_PREEMPT および CONFIG_PREEMPT 以外のカーネルでは機能しますが、CONFIG_PREEMPT_RT リアルタイム (-rt) カーネルでは機能しません。
非 CONFIG_PREEMPT カーネルではプリエンプションが無効になっていることは理解していますが、なぜCONFIG_PREEMPTカーネルでも問題ないのでしょうか?
database - 12c プラガブル データベース上の BI アプリ
12c のプラガブル データベースで BI アプリを実行している人はいますか? RCU が .dmp ファイルをインポートしてプラガブル データベースにスキーマを作成しようとすると、RCU でいくつかのインストールの問題が発生します。
別の環境の 12c で BI アプリを実行していますが、データベースはコンテナー データベースとしてセットアップされていません。
プラガブル データベースで BI Apps を実行できるインストール プロセスを完了し、その後問題が発生していない人がいるかどうか疑問に思っています。
linux - rcu_dereference() vs rcu_dereference_protected()?
と の違いを説明できる人はいrcu_dereference()
ますrcu_dereference_protected()
か?
rcu_dereference()
バリアコードをrcu_dereference_protected()
含み、含まない。
いつrcu_dereference()
、いつ使用するのrcu_dereference_protected()
ですか?