我们有一些软件依赖于另一个(非常常用的)应用程序的某些行为,这些应用程序现在已经改变,使我们当前的实现可行,但不是最优的。
我们相信这一变化可能影响了许多其他应用程序,特别是在性能监控领域,我们已经找到了一个我们认为可以改善一系列其他潜在问题的解决方案。
不幸的是,上述解决方案是内核更改(相对简单但如果我们把它塞进去会产生很大影响),我们没有提交内核补丁以供审查的经验。
SO上有没有人真的提交了一个补丁(虽然我很感激所有的答案,但我怀疑最好的答案来自那些已经通过这个过程的人,即使是不成功的)?您是否已接受它(Alan Cox 等人在 SO 上徘徊的机会有多大)?
正确的流程是什么?我不打算向 Linus 发送电子邮件,因为我知道他有一群保护者,你应该在它到达他之前通过这些保护者。我如何找出谁负责内核的特定部分。
可能是我过于乐观地认为内核世界从未听说过的人可以做出贡献,但我很想知道。
编辑更多细节:
更改实际上并不是针对性能错误,而是(在我看来)对进程终止时写入的进程会计条目(当前)的改进。
Websphere App Server(啊,IBM,祝福他们的小心脏)已经改变了它的工作;JVM 过去常常定期退出,以便写入它们的条目,我们可以将其用于退款。现在它让 JVM 闲置了几个月,这意味着除非我们定期强制关闭 WAS,否则无法及时获得数据。不知何故,我认为 IBM 的软件部门不会为我们修复他们的软件 :-)。无论如何,我相信它对于其他长期存在的进程来说可能是一个有用的特性。
当前类型 3 进程记帐记录是在进程退出时写入的,我们正在研究的是一种在进程仍处于活动状态时定期写入类型 N 记录的机制,给出自上次写入以来的数字(或进程启动,如果这是第一次)。计费或性能监控应用程序可以选择使用类型 3 记录(完全未更改)或临时类型 N 记录。我们目前的解决方法是监视特定进程的 /proc/PID/stat ,但这是一个可怕的问题,因为它不能很好地与实际进程记帐集成。
不需要经常(我们很高兴有 24 小时),但可能会对性能产生影响,因为当前仅在进程 exit() 上完成的工作将不得不偶尔在进程上下文切换时完成。Linus 等人可能不喜欢这个想法,因为它可能是代码的高影响区域(即使检查自上次写入以来是否有 24 小时可能对他们来说太慢了)。
不过,感谢到目前为止所有的答案,我会看看我怎么走。给我几天,我会接受最好的答案。