用户工具

站点工具


projects:semi-monthly:2010:10:16-31

半月报 (2010/10/16 - 2010/10/31)

记录我们为 FreeBSD 所做的工作、项目进展和遇到的问题。这份文档记录截至(北京时间) 2010 年 10 月 31 日的内容,欢迎大家自愿填写。

delphij

  • 更新 nc(1) 至 OpenBSD 4.8 的版本。(r214028+r214029»r214047)
  • 修正了 dokuwiki 的一个中文处理问题(MQ提交,git revision 3af5cfd0d5afc1130a29c9934cef5f3821b2bf15)

davidxu

  • robust mutex 在我的机器上已经可以运行了。暂时告一段落,commit是不会在近期做的,因为这涉及到把mutex等等的东西都做成结构,公开到pthread.h,该结构可以被mmap,然后在进程间共享,看这很吸引人,也确实开始实现了,但是牺牲了以后可以维护的能力,要知道一旦固定下来,以后二进制兼容的问题可就麻烦的很,不象现在,所以东西都隐藏在一个指针后面。这样的疯狂的事情,我还是不愿意做的。
  • 最近做的thread id hash,几经曲折。提升内核在通过thread ID查找线程的性能,直接影响应该是 pthread_kill的性能,其他则是ptrace和cpuset相关的API。将来么,那就是pthread中的,优先级传播型mutex,在锁冲突时找拥有者线程时的性能。其实现在已经用了,只不过此类mutex用的人少之又少,实在是做了吃力不讨好,这类mutex,实现起来是非常累的。
  • 最近突然想着可以实现mutx + conidtion variable的队列迁移,就是一个线程在pthread_cond_wait中被其他线程用pthread_cond_signal唤醒的时候,迁移到mutex等待队列而不是直接唤醒。但是实现起来都不是很理想:如果队列在用户态管理,很容易因为线程被抢占而导致别的线程想获得队列锁时不得不等待这个被抢的线程再次运行,性能影响是可以想想的。所以低级队列都不在用户态做就是这个道理。其他实在是没好办法,LINUX在内核做,但是会导致唤醒一个线程要多一次系统调用,也不喜欢。暂时作罢。

wen

  • 完成约100次ports committs
  • 提交math/R、lang/go等的升级PR给维护者
/data/vhosts/wiki-data/pages/projects/semi-monthly/2010/10/16-31.txt · 最后更改: 2010/10/31 09:15 由 wenheping