![](/img/trans.png)
[英]Race conditions due to speculative reordering / Linux RCU facility
以下摘錄摘自網站https://lwn.net/Articles/262464/ ,它處理共享數據結構的讀取不一致(為此創建了 RCU): 盡管此代碼片段似乎很可能不會出現錯誤排序,但不幸的是,DEC Alpha CPU [PDF] 和值推測編譯器優化可能會導致 p->a、p->b 和 ...
[英]Race conditions due to speculative reordering / Linux RCU facility
以下摘錄摘自網站https://lwn.net/Articles/262464/ ,它處理共享數據結構的讀取不一致(為此創建了 RCU): 盡管此代碼片段似乎很可能不會出現錯誤排序,但不幸的是,DEC Alpha CPU [PDF] 和值推測編譯器優化可能會導致 p->a、p->b 和 ...
[英]Why Linux kernel never implemented a per data object RCU mechanism?
Linux kernel 中的核心 RCU API 適用於 kernel 中的所有客戶端,這意味着任何讀取器(即使他們正在訪問完全不相關的數據結構也將被平等對待)訪問數據結構。 並且像 synchronize_rcu() 這樣的調用需要等待所有的讀者,即使他們在后台訪問完全不相關的數據結構。 為 ...
[英]'c:\Program' is not recognized as an internal or external command, operable command or batch file
成功安裝 Oracle SOA Suite 12c 后,我正在嘗試安裝 RCU。 當我嘗試從命令提示符執行 RCU 批處理文件時,出現此錯誤: 批處理文件位於以下路徑: 這是我的 PATH 環境變量值: 這在我的 PATHTEXT 環境變量值中: 我試圖運行的批處理文件: r ...
[英]Get a list of all rcus available in Oracle 12c?
在我們的開發環境中,開發人員為 Weblogic Domain 創建了太多的 RCU 模式。 這些開發人員中的許多現在已經離開了組織,我們需要分發 DBA 將刪除的 RCU 列表,以便人們可以提前通知我們,如果他們正在使用特定的 RCU 模式。 那么有沒有什么簡單的方法可以在 Oracle 12c ...
[英]How RCU handles the condition of a reader started reading critical section while synchronize_rcu() is waiting
根據 RCU 文檔(我相信內核和用戶空間 RCU 框架是相似的), synchronize_rcu()等待所有讀取器(在調用synchronize_rcu之前啟動的)完成。 在synchronize_rcu()在其寬限期內等待之后啟動的讀取器會發生什么? 在synchronize_rcu()返回后啟 ...
[英]Nesting of rcu_read_locks
我將RCU保護的指針MyStruct *存儲在RCU保護的哈希表MyHash 。 通過哈希表讀取/更新MyStruct ,如下所示。 請注意, MyStruct本身是另一個RCU保護列表的一部分(即它是另一個列表的RCU保護節點),該列表存儲在MyHash以加快查找速度。 據我了 ...
[英]What does rcu_read_lock() actually do (Linux Kernel)
我正在嘗試了解 rcu_read_lock() 同步機制。 據我了解,使用的是rcu_read_lock(),這里有多個讀線程和一個寫線程,讀/寫相同的數據,在rcu_read_lock()下進行讀操作,每個線程復制數據。 我寫了一個簡單的驅動程序來測試這個(read() 和 write() 函數是 ...
[英]is possble protecting ___nf_conntrack_find() return value by RCU?
我想知道nf_conntrack_find_get()真正通過Linux內核中的RCU保護ct指針。 節點更新時,Read-Copy-Update(RCU)可以保護對節點rcu_read_side關鍵部分的訪問(讀取)。 但是,這並不意味着保護節點。 nf_conntrack_fi ...
[英]rcu_read_lock and x86-64 memory ordering
在可搶占式SMP內核上, rcu_read_lock編譯以下內容: barrier是一個編譯器指令,可編譯為空。 因此,根據英特爾的X86-64內存訂購白皮書: 可能會將舊商店的貨物重新排序到其他位置 為什么實施實際上可以? 請考慮以下情況: 是什么 ...
[英]Is it safe to use rcu_dereference() inside local_bh_disable()/local_bh_enable()?
local_bh_disable -function更改per-cpu(如果是x86和最近的內核) __preempt_count或current_thread_info()->preempt_count否則。 無論如何,這給了我們寬限期,所以我們可以假設在local_bh_disa ...
[英]Lock Free stack implementation idea - currently broken
我想出了一個想法,我試圖實現一個無鎖堆棧,該堆棧不依賴引用計數來解決ABA問題,並且還可以正確處理內存回收。 它在概念上與RCU類似,並且依賴於兩個功能:將列表條目標記為已刪除,以及跟蹤遍歷列表的讀者。 前者很簡單,它只使用指針的LSB。 后者是我“聰明”地嘗試實現一種無界無鎖堆棧的方法。 ...
[英]gcc show “Need native word sized stores/loads for atomicity” for calling `hlist_nulls_add_head_rcu`
我想致電hlist_nulls_add_head_rcu來管理我的列表,但是gcc給出了許多錯誤消息,如下所示: 我認為最有用的信息是第一個: 然后在我的模塊中調用hlist_nulls_add_head_rcu句子是: 參數類型正確,因此調用方式可能是錯誤的。 有誰知 ...
[英]Why does the kernel function:get_next_corpse increase counter after a nf_conn is found?
我正在閱讀內核源代碼,並嘗試了解ip conntrack的機制。 如何理解增加被發現要清除的nf_conn結構的計數器的函數get_next_corpse。 由於發現ct已被清除,為什么需要atomic_inc(&ct-> ct_general.use)? ...
[英]installing RCU for Configuring Oracle Identity And Mnagement
我想配置OIM <Oracle身份和訪問管理,因此我遵循以下指示: 安裝fmw_12.2.1.3.0_infrastructure.jar 安裝fmw_12.2.1.3.0_soa_quickstart.jar 安裝fmw_12.2.1.3.0_idm.jar ...
[英]Can rcu_assign_pointer() be used between rcu_read_lock() and rcu_read_unlock()?
開始時,我有一個 CPU 內核作為寫入共享數據的寫入器,一個內核作為讀取器讀取共享數據。 我需要讀者寫回一些數據來共享數據。 我知道rcu_read_lock() / rcu_read_unlock()用於讀取器獲取共享數據。 但我不確定讀者寫回共享數據會導致什么問題? 在讀者中: 這個代碼有 ...
[英]Undefined reference on compiling with lib-urcu with CMake
對於如何解決以下問題,我將不勝感激: 我的CMakeLists.txt: liburcu的部分從https://github.com/markusa/netsniff-ng_filter/tree/master/src/cmake/modules復制。 我已經檢查了LIBU ...
[英]Is it okay to read either old version or new version in RCU lock?
我對RCU鎖有疑問。 據我所知,RCU允許一些讀者(在寬限期之前開始並在寬限期結束時)擁有舊版本或新版本。 查看附加圖像。 因此,在黃色部分之前開始並在黃色部分內結束的讀者可以讀取更新(已移除)值或舊值。 但是,我的問題是為什么讀者可以擁有不確定的價值? 我認為所 ...
[英]Is there a linux header for hashtable with spinlock-protected buckets?
我編寫的代碼很少創建/刪除對象(最多數千個),但經常在軟IRQ上下文中對其進行修改。 這些對象也很少從任務上下文(通過procfs:每個對象文件)中讀取(並且可能也很少修改)。 目前,我的代碼包含每個CPU的全局數據塊,每個數據塊都有一個自旋鎖保護。 這樣的塊包含用於對象存儲的固定大小的哈 ...
[英]Linux RCU and double linked list
我正在閱讀有關Read-copy-update(RCU)的文章 。 我不確定是否正確理解了SMP。 據我所知,RCU確保Update是原子執行的。 例如,在單個鏈表的情況下,很明顯,可以通過一項操作來完成舊元素與新元素的交換,因為這是通過更改指針來完成的。 但是,如何確保在雙鏈表的情況下 ...
[英]rcu_dereference() vs rcu_dereference_protected()?
誰能解釋rcu_dereference()和rcu_dereference_protected()什么rcu_dereference_protected() ? rcu_dereference()包含屏障代碼,而rcu_dereference_protected()不包含。 什么時候 ...