FreeBSD 6.0 July snapshot will be released soon

| Development

Looking forward to it. Only 1 week left to RELENG_6!

参与评论

My 24th Birthday

| Life

Thanks goes to my parents, and yes, today I’m 23 yrs old.

(Believe it or not, FreeBSDChina.org is 3 years old today, too)

参与评论

贴一首许常德的歌词《西风的话》

| Shared Chaos

高中时很喜欢的一首歌,很大程度上是由于许常德老师的词的缘故。

去年秋天 无人海边 你们相恋
今年秋天 转眼之间 他已不在身边
人世间 多少梦 多少愁
秋不浓 谁把树叶都染红

阅读全文…( 本文约 173 字,阅读大致需要 1 分钟 )

The ULE issue

| Development

Now I got (partially) the point:

Interestingly this does not happen in !PREEMPTION case.

Now my question are:

  1. who forks?
  2. is it the child? the parent?
  3. why the initialization is not completed with a wrong result?
参与评论

感觉非常的累

| Life

不是身体上的,而是精神上的。

今天一个哥们非常愤怒地抱怨我没有做某件事,我的错。

多少也明白了当时为什么对某件事死死抓住不放,因为我实在是一个说两句话就能吓跑一半人的家伙,沟通能力太差。

阅读全文…( 本文约 147 字,阅读大致需要 1 分钟 )

决定抛弃某段代码

| Development

今天偶然发现以前做的一套CMS里面的显示发布日期的功能被干掉了。

这已经不是第一、第二或者第三次在我毫不知情的情况下作的commit了。而且我注意到commit log里面还赫然写着"Approved by: delphij"。

阅读全文…( 本文约 306 字,阅读大致需要 1 分钟 )

postfix experimental snapshot supports DSN!

| Security

Yes, finally postfix is supporting DSN. To quote Witese, this is the first postfix snapshot which provides “full support for RFC 3461..3464 Delivery Status Notifications”!

参与评论

Still ULE+PREEMPTION

| Kernel

I have done several experiments/asserts to ensure that the panic is related to ULE+PREEMPTION case only.

ULE: no panic
4BSD: no panic
4BSD+PREEMPTION: no panic

My latest progress is that I found that sched_switch in ULE for the threaded case, can decide whether subsequent call would panic. Investigating.

参与评论

Working on ULE

| Kernel

My company has offered me some test equipment (namely, a HP 360 with ILO, which is *great* for debugging at home!), and I has started to trip over the ULE code and find for bugs.

参与评论

keys of (j),(z), etc. in FreeBSD scheduler related stuff's comments

| Kernel

You can obtain latest list from sys/sys/proc.h:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

 * Below is a key of locks used to protect each member of struct proc.  The
 * lock is indicated by a reference to a specific character in parens in the
 * associated comment.
 *      * - not yet protected
 *      a - only touched by curproc or parent during fork/wait
 *      b - created at fork, never changes
 *              (exception aiods switch vmspaces, but they are also
 *              marked 'P_SYSTEM' so hopefully it will be left alone)
 *      c - locked by proc mtx
 *      d - locked by allproc_lock lock
 *      e - locked by proctree_lock lock
 *      f - session mtx
 *      g - process group mtx       
 *      h - callout_lock mtx
 *      i - by curproc or the master session mtx
 *      j - locked by sched_lock mtx
 *      k - only accessed by curthread
 *      l - the attaching proc or attaching proc parent
 *      m - Giant
 *      n - not locked, lazy
 *      o - ktrace lock
 *      p - select lock (sellock)
 *      q - td_contested lock
 *      r - p_peers lock
 *      x - created at fork, only changes during single threading in exec
 *      z - zombie threads/ksegroup lock
参与评论