我们有一些软件,依靠某些行为从另一个(非常 通常使用)应用程序,现在已经改变,呈现我们目前实施可行的,但小于最佳的。

我们认为,这种改变可能已经影响到其他一些应用,特别是在绩效监测竞技场,我们已经找到一个解决方案,我们相信,将会改善一系列的其他潜在的问题。

不幸的是,上述解决方案为核心的变化(相对简单,但高的影响,如果我们的东西它)我们没有经验在提交核贴进行审查。

有人在那么实际上提交了一个修补程序(虽然我们赞赏所有答案,我怀疑最好的将来自那些已经通过的过程中,甚至未成功)?你有没有接受(什么是机会,艾伦*考克斯et al挂在这样)?

什么是正确的进程?我没有打算发送的电子邮件给Linus,因为我知道他有一个干部的保护你应该去通过之前,它得到了他。我该如何找出谁是负责的特定部分的核心。

这可能是我有过分的乐观思想人的内核是世界上从来没有听说过可以做出贡献,但是我很有兴趣找出来。


编辑更多详细信息:

变化实际上不是一个性错误,而是一种改善(在我的视)的处理会计分录(当前)编写进程时终止。

Websphere应用服务器(啊,IBM,保佑他们幼小的心灵)有改变什么它不会;Jvm用于出口经常使他们的条目编写和我们可以使用,对于拖欠款项。现在它离开Jvm躺在附近几个月,这意味着数据没有及时提供,除非我们力下降。不知怎的,我不认为IBM的软件组要解决他们的软件对于我们:-).在任何情况下,我认为,它可以是一个有用的功能有其他长期的进程。

目前3类进程的会计记录是写在一过程中退出时,我们看到的是一个机构编写的类型-N周期性地记录,而一个进程仍然是活动给予数字自去写(或过程的开始,如果这是第一次)。拖欠款项或绩效监测应用的可能选择使用的类型-3记录(完全不变)或临时的类型-N记录。目前的解决方法,我们是来监视/proc/PID/stat于具体进程,但这是一个可怕暂且因为它没整合好的真实处理会计。

它不需要经常(我们很乐意与24小时),但有可能影响,因为工作,这是目前仅在过程exit()将必须完成偶尔进程背景下开关。莱纳斯等人可能不喜欢这个想法,因为它可能是一个高影响力的区域代码(甚至检查,如果有过24小时自上次写信可能太慢,对他们)。

仍然,感谢所有的答案迄今为止,我会看看我如何去。给我几天和我会接受最好的答案。

有帮助吗?

解决方案

其他事情: 专注于性能错误报告,并正确(具有可重复的基准)将至少帮助您让人们打扰这个问题。在测试之后再提交补丁,但要注意你的优秀补丁可能使用错误的方法,并且他们可能会写一个更好的补丁。或者说它可能很棒,但可能需要修复才能被接受,甚至可能发生在优步人身上。并且不要想私下给某人发电子邮件,而是参考LKML或相应的子系统ML。

我建议您在联系内核开发人员之前先阅读所有其他答案和所有适用的材料;并阅读SubmittingPatches的参考书目。 如果你做错了,他们可能会很苛刻。核心新闻IRC聊天是你开始的好地方,因为它们肯定是热情好客,即使有时环境可能太新手了(不确定,我也没有那么多)。

  

我可能会过于乐观地认为某个内核世界从未听说过可以做出贡献,但我有兴趣了解一下。

这并不过分乐观;至少不是这样。从你的摘要(因为我不知道你的技能),更不可能的是你的补丁将被接受而不做任何修改,或者它是根据正确的技能编写的。但实际上,如果您的补丁适用于较小的社区,则可能会更容易。

从有经验的人(即我),在考虑提交补丁之前,描述问题及其影响其他应用程序的原因。像<!>这样的注意事项可以提高我们的性能<!>,尤其是如果您(作为供应商)有资格获得资格,对内核开发人员没有吸引力。

特别是,省略这样的陈述:

  

使我们当前的实现可行,但不是最佳。

因为这会给你买<!>;修复你的代码<!>大多数读者立即推荐。

如果现有应用程序(不是您编写的)的性能受到影响,则会有所不同。例如,一旦Linus立即注意修复内核性能以搞砸代码,因为该代码是make的一部分,即使他为他编写的代码以及他不需要做的事情感到自豪确切的修复。即,您需要一个每个人都关心的应用程序,或者一个没有缺点的解决方案。 所以,像:

  来自另一个(非常常用的)应用程序的行为

是好的,只要您认为该应用程序的使用不合理。

最后,如果您参考源代码,他们可能会要求查看感兴趣的部分 - 如果存在代码,请考虑许可代码问题,如果您想快速回答,请事先解决其中任何问题。

不过,这是我在那里的部分经历: https://www.ohloh.net/accounts/Blaisorblade

如果您愿意,可以与我联系,直接向您提供建议的邮件,并在讨论中与我联系。我很忙,但我可能会找到更多的时间: - )。

其他提示

好吧,您可以尝试在linux内核源代码树中阅读 Documentation / SubmittingPatches

在一个大项目,最好的办法,以获得一片进入主要树联系的人员是维持特定的代码。所以,看起来过的 Linux维护者的文件 看看谁是正式的维护者你的代码变了,也在 Linux内核SCM库 找到开发人员最近工作上的代码。增加的机会的补越来越接受:

  • 确保你的修补是很容易理解和遵循现有的码和文件的标准,
  • 解释清楚你的贴实现,
  • 提出你的修改以适当的格式(所输出的差异为Linux)
  • 确保贴片可以干净利落地加(和工程)上的最新的软件(Linux内核)的版本,
  • 包括测试案例,这表明这两个问题是解决和如何修补解决它,
  • 不包括你的代码不相关(例如格式)的变化。

一个小小的修正已知的错误更有可能得到纳入一个项目于大型代码的更改,引入新的要素的边际或可疑的实用工具。在某些情况下,这是值得的第一件报告,通过项目的问题跟踪数据库,然后提交的补,以解决的具体问题。为了避免的失望,如果你想让一个大的改变,这是更好地讨论改变和你的提议的执行情况的维护者 之前 编写代码。

阅读Documentation / SubmittingPatches,找到合适的MAINTAINER,最重要的是,发现所有讨论真正正在发生的地方。 它可能不在内核邮件列表本身,但可能在某些子系统ML上。

然后订阅此ML,并将您的补丁作为RFC提交。

我不知道您的补丁是否具有侵略性,但是尝试将其拆分为逻辑更改队列,每个补丁都有自己的解释。

我自己没有尝试过提交任何内核补丁,而且这里缺少文档区域。

此页似乎可以为您指明正确的方向。

在编辑中,答案可能是一个有趣的例子。 我猜你的要求是完全合理的,但你是对的,即使对上下文切换的测试也可能太昂贵。但由于内核有一个定时器实现,我不明白为什么它不能用来避免它。因此,确实提出增强请求是最安全的选择。 我很惊讶,建议发送错误报告而不是补丁是非常合适的。 您也可以自己修改补丁以自行使用定时器,如果您想提交定时器,但仍可以进行讨论:-) 你甚至可以添加<!>;我们有一个本地修复,但它在上下文切换快速路径上添加了一些测试,这就是为了参考而附加补丁但不应该应用<!>“的原因。关闭自己的代码,如果知道它是坏的,将避免对补丁进行严格的审查。

替代方案是运行一些基准并证明没有影响,但是如果定时器是可行的,那么代码将被拒绝,或者自己尝试定时器解决方案(可能存在更好的东西)。 找到他们用于内核调度程序的基准测试;看看<!> quot; recent <!> quot;关于CFS Ingo(或Kolivas'?)补丁的线索并采取他们的基准。

关于支持,内核开发人员不会关心<!>“Websphere App Server <!>”;如果它做不合理的事情本身,甚至不是IBM资助的事情。但由于我对情况的了解有限,定期关闭JVM没有意义,它似乎只是一种记录内存泄漏/不稳定的方法,因此必须支持当前的行为。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top