问题标签 [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.

0 投票
2 回答
139 浏览

linux - 为什么 Linux 内核从未实现每个数据对象的 RCU 机制?

Linux 内核中的核心 RCU API 适用于内核中的所有客户端,这意味着任何读取器(即使他们正在访问完全不相关的数据结构)访问 rcu 支持的数据都将被平等对待。并且像 synchronize_rcu() 这样的调用需要等待所有的读者,即使他们在后台访问完全不相关的数据结构。

为什么 Linux 内核从未添加对每个数据对象 RCU 的支持?我在这里错过了什么吗?我认为当前 RCU API 的含义是,如果内核中有很多客户端,则 RCU 的整体性能可能会受到影响,因为它们共享全局视图。

0 投票
1 回答
52 浏览

c++ - 由于推测性重新排序/Linux RCU 设施导致的竞争条件

以下摘录摘自网站https://lwn.net/Articles/262464/,它处理共享数据结构的读取不一致(为此创建了 RCU):

尽管此代码片段似乎很可能不会出现错误排序,但不幸的是,DEC Alpha CPU [PDF] 和值推测编译器优化可能会导致 p->a、p->b 和 p- >c 在 p 的值之前被获取!这在值推测编译器优化的情况下可能最容易看到,其中编译器猜测 p 的值,获取 p->a、p->b 和 p->c,然后获取 p 的实际值为了检查它的猜测是否正确。这种优化非常激进,也许是疯狂的,但确实发生在配置文件驱动优化的上下文中。

我不清楚上面的代码是否意味着在访问p->a等时产生错误的 (*) 值,这让我感到害怕,或者它是否意味着“其他 CPU 可以观察到书面(源)顺序”这对我来说完全没问题。

如果第一个解释是正确的,我认为允许这种行为被破坏的系统(编译器)。我的问题是这个东西是否仍然存在,即使流行的架构(Alpha)可能已经消失了。

(*)p->a来自一个记录和p->b另一个记录或更糟的东西的错误值

PS:我没有检查,但我假设gp变量被正确装饰atomic或类似。

0 投票
0 回答
140 浏览

c - 如何使用 rcu_read_lock() 和 rcu_read_unlock() 避免内核崩溃?

我正在尝试通过 SCHED_DEADLINE 实施能源感知计划,我正在将 5.4 内核构建到 odroid-xu4 中。

我的 rcu 锁有问题,实际上我不明白为什么我的实现会崩溃。我知道问题是 rcu_readl_lock() 和 rcu_read_unlock(),因为在另一个实现中它给了我同样的错误,但我不明白怎么做!!当任务即将结束时,即测试结束时,就会出现问题。

这是我的代码,用dea​​dline.c编写:

这是来自 dmesg 的错误:

有人可以帮助我吗?非常感谢!

0 投票
0 回答
58 浏览

rcu - 什么是平均值'(检测到 1,t=2103 jiffies,g=1712727,c=1712726,q=13218)'

我是一个初学者程序员。

我的应用程序从 netfilter(网络设备驱动程序)接收事件,我使用轮询,然后我老化我的应用程序,现在没关系,但 8 小时后不接收事件。我从系统日志中检查并输入“ps -ely”,然后我的板停止

我想在下面理解一些意思。

** 由 t、g、c 和 q 检测到的“(检测到 1,t=2103 jiffies,g=1712727,c=1712726,q=13218)”是什么意思

0 投票
0 回答
29 浏览

kernel - 为什么设计 RCU 是为了保护指针分配?

我想知道为什么 RCU 旨在保护指针分配和访问。如果 rcu_read_lock 用于保护正常的变量访问,会发生什么?

0 投票
1 回答
60 浏览

oracle - 是否可以为现有域创建新的 RCU 模式?

所以基本上我有一个 OSB 域,并且该数据库将被停用并创建一个新的。是否可以在新数据库上生成新的 RCU,然后只替换现有域上的数据库信息?还是我们应该将现有的 RCU 模式从旧数据库迁移到新数据库?

此致

0 投票
0 回答
22 浏览

passwords - 用于 ODI 的静默模式下的 RCU 存储库创建实用程序 - 主管的密码

我现在正在研究如何将 RCU 设置从 UI 转换为静音模式。这是静默模式的当前命令,模式的密码存储在 /u01/oracle/pwd.txt 中:

/u01/oracle/oracle_common/bin/rcu -silent -createRepository -databaseType ORACLE -connectString localHost:1521/RETAIL -dbUser sys -dbRole sysdba -useSamePasswordForAllSchemaUsers true -selectDependentsForComponents true -schemaPrefix RDE19 -component ODI -component MDS -component UCSUMS -component IAU -component IAU_APPEND -component IAU_VIEWER -component OPSS -component WLS -component STB -f < /u01/oracle/pwd.txt >> /u01/oracle/RCU.out

但是我有一个错误自定义变量主管密码的值小于 6 个字符的最小长度。值应介于 6 到 12 个字符之间。

请让我知道如何通过静默模式为自定义变量提供密码。谢谢你。