首页 > 解决方案 > 对 sysfs 的多次后续写入会导致无效的模块行为。如何解决?

问题描述

我的团队正在编写与 Linux 内核模块交互的软件。我们写入 sysfs 来管理模块。最近,我们一直在与模块偶尔无法按预期运行的问题作斗争。

我的一位同事注意到,如果我们sleep在对 sysfs 的后续写入之间放置一个,则不会出现问题。这可能意味着在第一次写入之后,模块需要一些时间来做一些额外的处理,我们的代码应该等到它完成后再执行第二次写入。

我真的不想sleep在代码中随意添加。但是,我们几乎没有使用内核空间的经验。有没有办法检测内核模块正忙于做额外的处理?跟踪模块的活动?特别是一种编程方式,我们可以使用它来代替sleep-ing 一些预定义的间隔?

不幸的是,我的 NDA 阻止我详细了解我们与哪个模块和哪些 sysfs 文件进行交互。

标签: linuxkernel-modulesysfs

解决方案


推荐阅读