linux - 对 sysfs 的多次后续写入会导致无效的模块行为。如何解决?
问题描述
我的团队正在编写与 Linux 内核模块交互的软件。我们写入 sysfs 来管理模块。最近,我们一直在与模块偶尔无法按预期运行的问题作斗争。
我的一位同事注意到,如果我们sleep
在对 sysfs 的后续写入之间放置一个,则不会出现问题。这可能意味着在第一次写入之后,模块需要一些时间来做一些额外的处理,我们的代码应该等到它完成后再执行第二次写入。
我真的不想sleep
在代码中随意添加。但是,我们几乎没有使用内核空间的经验。有没有办法检测内核模块正忙于做额外的处理?跟踪模块的活动?特别是一种编程方式,我们可以使用它来代替sleep
-ing 一些预定义的间隔?
不幸的是,我的 NDA 阻止我详细了解我们与哪个模块和哪些 sysfs 文件进行交互。
解决方案
推荐阅读
- ruby-on-rails - 删除多态 ActiveRecord 模型后如何处理“未初始化的常量”
- java - javafx上传图片的路径是什么
- c# - 将 Http 请求转换为 Unity Web 请求
- excel - VBA 错误未选择和删除列
- angularjs - 一旦访问另一个弹出框,弹出框功能就会丢失
- python - 重新拆分以将字符串分解为组件但保留分隔符
- c++ - 嵌套结构的运算符重载仅用作成员或朋友函数
- python - 如何在 Python 中使用 Plotly 创建的绘图中添加按钮或下拉列表?
- r - ShinyApp 中没有复选框
- php - 正确格式化 DATA 的 STR_TO_DATE 错误