delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

20 Jan 2004

Preparing for an interview with David Xu

Today folks at FreeBSDChina suggested me to have an interview with FreeBSD’s David XU (Yifeng XU), who is an active committer, and possibly the only src committer living in the mainland China.

I have solicited the interview (through e-mail) several minutes before I wrote this blob. Now I am preparing questions for the interview. So if you have any suggestions, just write here and I will bring them together.

David Xu is mainly involved in the FreeBSD KSE Project. Kernel Scheduler Entities (KSE), is a kernel-supported threading system similar in design to Scheduler Activations [Anderson, et. al.]. It strikes a balance between user-level (1:N) and kernel-level (1:1) threading models, giving most of the advantages of both, and few of the disadvantages of either.

KSE’s threading library, a.k.a. libkse would became the default threading library before 5.3-RELEASE, which is also the branchpoint of 5-STABLE, and division of 5/6 branching. In the near future, a KSE aware scheduler, also known as the “ULE Scheduler”, designed and implemented by Jeff Roberson, will become the default kernel scheduler of FreeBSD-CURRENT. In my tests, KSE will bring significant performance improvements to Apache 2.x (worker MPM) and MySQL 4.x. I have built a threaded version of Postgresql as well however I am not sure how much performance improvements were gained because the database is not stressed.

Xu has also committed the GB2312 support. Xu became a src committer on September, 2002.


Archived: 4 Comments

delphij | January 20, 2004 1:18 PM

Update: davidxu accepted the interview.

Junsu | January 21, 2004 3:02 PM

Good news. I’m exciting to see this happen.

delphij | January 21, 2004 3:45 PM

以下是我本次采访的主要问题:

Part 1. 关于您个人的一些情况

  1. 可否请简要介绍一下关于您的一些基本情况?

  2. 是什么促使您参与到FreeBSD的开发中的呢?

  3. 您是在2002年9月成为FreeBSD src committer的,此后,您在FreeBSD Project中的主要工作几乎都与KSE有关。除了KSE之外,您还对那些技术比较感兴趣呢?

  4. 可能也是困扰许多开放源代码软件开发的问题,您开发 FreeBSD 的时间从哪里来? 您所在的公司对您参加FreeBSD的开发是否支持? 您是如何解决生存问题的?

  5. 在国外的(特别是从事驱动程序的那些) FreeBSD 开发者,经常能够得到一些来自硬件厂商的硬件捐赠,您对这些捐赠的看法如何?您是否需要类似的捐赠?

Part 2. 关于KSE

  1. 除了调度器和线程库 (libthr & libkse) 之外,KSE还涉及到系统的哪些部分? 相对Jason Evans的《Kernel-Scheduled Entities for FreeBSD》而言,现在的KSE有什么概念上的重大变化吗?

  2. KSE同Solaris LWP的主要区别是什么? 采用 Scheduler Activation 概念之后,内核通过向 UTS 提供更加准确的调度信息,是否需要用户修改自己的程序才能够发挥其作用? 或者,用户只需要简单地连接一个支持KSE的线程库就可以了?

  3. KSE线程库同 Linux 上的 NPTL 实现有什么显著的差异吗?如果有,这些差异对开发者或用户是否会有很大的影响?

  4. 使用 ULE 调度器是否会对使用了KSE的应用程序的性能产生比较大的改善?

  5. FreeBSD 5.3-RELEASE计划将ULE调度器和KSE线程库作为操作系统的默认配置,您认为这样做是否已经时机成熟?在此之前,您认为还需要完成一些什么样的工作?

  6. 对于开发人员来说,便于使用的调试器无疑会帮助他们达到事半功倍的效果,而对于一个使用线程的程序来说更是如此。您可否推荐一些与KSE有关的调试工具或调试技巧?

  7. 对于运行Apache2 (worker MPM)、MySQL 4.x、PHP 4.x的服务器,您认为使用哪组KSE线程库更好?

  8. NetBSD 的 Scheduler Activation 实现和 FreeBSD KSE有什么主要区别?

Part 3. 关于SMPng

  1. SMPng使用了大量的细锁来取代全内核范围内的Giant锁,在提高性能的同时,这也增加了代码的复杂性和验证它们正确性的难度。您认为是否有更好的办法来解决内核的MP-同步问题?

  2. 您认为在 5-STABLE 和 5/6 branching 之后,SMPng的架构是否还会发生重大的变化?

  3. 是否可以介绍一些调试SMP内核的经验?

Part 4. 关于 FreeBSD

  1. 您从事FreeBSD开发使用的主要工具是什么?

  2. 除了FreeBSD之外,您是否还使用其它的操作系统? 您是否也参与其它(开放源代码)操作系统的开发?

  3. 如果可能的话,您最希望 FreeBSD 的哪一部分出现“突破性的”进展?

  4. 您可否为希望了解 FreeBSD 内核的人推荐一些参考资料? 另外,您认为在开始真正的 Kernel Hacking 之前,他们需要有哪些准备?

Part 6. 其它

  1. 除了 FreeBSD 的开发之外,您平时主要做一些什么工作? 您有没有其它方面的爱好?

  2. 作为一个 FreeBSD 的开发者,您希望对用户说什么?

delphij | January 21, 2004 3:57 PM

Question 1.4 is mainly submitted by junsu; Questions 2.1 and 2.2 are mainly originated by cnbsd.