Wednesday Mar 26, 2008

English Version

Project Brussels NGE Gigabit Ethernet driver support has been put back into Solaris Nevada Build 86. Currently, there isn't a unique interface for configuring parameters for NIC drivers in Solaris. The configuration of a NIC driver may be customized by driver.conf, ndd, etc. Project Brussels aims to provide a standardized interface for configuring all GLDv3 NICs via the system tool dladm. And NGE driver(the driver of Nvidia nforce chipset Ethernet controller) is widely used in Sun servers and such as X4200/X4100 M2, X2200/X2100 M2 and workstations such as Ultra40, Ultra20. So it's a good step ahead.

What I need to emphasize is that this putback is a joint effort of the community member and Sun engineers. I think it a good example to demonstrate the open development practices in OpenSolaris community. OpenSolaris.org doesn't just make the code open-sourced. It's on the way to open the development process. And more, NGE driver is somewhat a special case,which requires the code reviews and approvals of engineers from Nvidia to ensure no Nvidia IP are leaked unintentionally. OpenSolaris community member Jason King provided the original code. The code is pretty much done. But he found some problems during the tests. The driver would fail to attach when the system was booting. So he turn to help from Sun engineer through OpenSolaris.org. I'm the responsible engineer for NGE driver. I contacted him, got his code and found the root cause soon. Not just the root cause, we also refined the code, did the tests in our lab and provided feedbacks to him. Jason updated the code for our reviews once again. Sun engineers Ted and Sowmini also gave their comments on the code. It's an iteration practice, in which we were interacting with each other well. After all the tests are passed, I help Jason to get Nvidia's code review and approval. Finally, we successfully put back the code into Solaris Nevada Build 86. So basically, this time, what the community developers do is to write the initial code and modify the code accordingly. What Sun developers do is to troubleshoot the code, refine the code, do the tests, do the legal review and put back the code. From my point of view, I think there is one advantage for Sun developers in the process of development is that we may be more familiar with the code, which made it easier to find the cause of the problems. and We may have more testbeds and test suits in the lab to reveal the bugs before the code is put back.

Lastly, I'd like to show my appreciation to Jason King's work in Project Brussels. Well done, Jason! And also I'd thank Ted and Sowmini and other colleagues for their supports in this putback.

Chinese Version

布鲁塞尔项目对NGE千兆以太网驱动程序的支持代码已经放入Solaris Nevada Build 86中。目前,Solaris并没有一个统一的接口来配置网卡驱动的参数。网卡驱动可以通过.conf文件或者ndd等工具来配置。布鲁塞尔项目通过系统工具来提供一个标准的接口来配置所有的GLDv3网卡驱动。NGE驱动(Nvidia nforce芯片组以太网控制器驱动程序)被广泛使用在Sun的服务器系统比如X4200/X4100 M2, X2200/X2100 M2以及工作站比如Ultra40, Ultra20。所以这次我们又前进了一步。

我想强调的是,这一次的工作是社区成员和Sun工程师共同努力的结果。我认为这是展示OpenSolaris社区开放开发过程的好例子。 OpenSolaris.org不只是将代码开放,它也正朝着开放开发的方向努力。此外,NGE驱动程序多少是个特殊的例子。为了保护Nvidia的知识产权不被无意泄露,它的修改需要得到Nvidia工程师的审核和批准。OpenSolaris社区成员Jason King提供了此次修改的原始代码。代码完成的不错,但是他在测试的时候发现了一些问题。改动后的驱动程序不能在系统启动时正常加载。所以他通过 OpenSolaris.org希望能够得到Sun工程师的帮助。我是NGE的责任工程师。我和他取得了联系,看了他的代码,并很快找出了问题根源之所在。此外,我们还找出了代码中存在的其他一些问题,优化了代码,在我们的实验室中做了测试并将我们的反馈提供给他。Jason以此更新了代码,并再次提交给我们审阅。Sun工程师Ted和Sowmini也对代码修改提出了他们的建议。这是一个反复的过程,在这个过程中,我们合作得很愉快。在所有的测试都通过了之后,我帮助Jason得到了Nvidia方面的代码审核和批准。最后我们成功地将代码放入Solaris Nevada Build 86。总的来说,此次,社区开发者的工作是编写了最初的代码,并相应地修改代码。Sun开发者所做的是,解决代码中的问题,优化代码,完成测试,完成法律审核,并将代码放入工程项目中。从我个人的观点来看,Sun开发者的一个优势是我们可能对代码更熟悉,这使得我们更容易找出问题的根源。而且,我们在实验室中有更多的测试机器和测试工具来保证在代码被放入项目工程前我们能尽量发现问题。

最后,我想表达我对Jason King在布鲁塞尔项目中所做的工作的感谢。干的好,Jason! 同时,我还想感谢Ted,Sowmini以及其他同事在这次工作中的支持。

Monday Mar 24, 2008

English Version

Currently Miles is a software engineer at Solaris NIC Team of Sun MicrosystemsChina Engineering and Research Institute (SCERI) after the graduation from the Department of Computer Science in Nanjing University since July 2007. Earlier he was serving as an intern for SCERI. He was and is still the youngest regular employee in SCERI. Most of his previous experiences related with operating system kernels, computer networks and embedded systems, which also brought him some awards such as global top 10 and Microsoft Multimedia Award in 2006 IEEE Computer Society International Design Competition, global top 30 in Microsoft Windows Embedded Student Competition. Besides, he was awarded the second prize in 2006 National Undergraduate Student Embedded System Contest and the 2007 Special Scholarship for Technology Innovation of Nanjing University, etc.

Born in a semi-English-speaking family, he is possessed of a good command of English and can speak it fluently. His characteristics varies a lot from a traditional engineer in most people's minds. He is not a tech nerd(at least not just a tech nerd)but an active talker and enthusiastic about making new friends. His interests also cover a lot of area -- sociology, history, geography and biology. In the casual time,he is in favor of traveling, photography and 3D animation creation. And maybe one day he will get the chance to travel around the world.

Welcome to Miles' blog at Sun. We can be friends^_^

中文版

Miles是Sun中国工程研究院(SCERI) Solaris NIC 组的软件工程师,于2007年7月从南京大学计算机系毕业。早前,SCERI也是他实习的地方。他曾经是,目前也仍然是年龄最小的正式员工。他过去的经历大都和操作系统内核,计算机网络以及嵌入式系统。这些经历也使得他获得了一些奖项,比如2006年国际电子电气工程师协会计算机分会国际设计大赛(IEEE CSIDC)全球前十名以及微软多媒体奖。同时入选2006年微软嵌入式大赛(Microsoft WESC)全球前三十名。此外,他还获得过2006年全国大学生电子设计大赛嵌入式邀请赛全国二等奖以及南京大学科技创新特长奖学金。

由于家庭的原因,他能够说一口流利的英文,性格也和传统上人们所认为的工程师有很大不同。他不认为自己是一个技术呆子,他很健谈,而且喜欢结交新的朋友。他的兴趣也很广泛,比如社会学,历史,地理以及生物学。在闲暇时间,他喜欢旅游,摄影以及制作三维动画。或许有一天,他能有机会环游世界,正如他一直期望的那样。

欢迎来到Miles的博客,希望我们能够成为朋友