Kernel

共 257 篇文章。

霍华德如是说

• Life

“这就得问,当初是谁给这家伙办的转正!“这句话也是这几天我经常嘟囔的一句。

我今天愤青一句来说,套用时下流行的话,便是:技术消除贫穷,但不能消除愚昧。

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

patched top(1) and kernel to support multiple CPU

• Development

前几天有人问 FreeBSD 的 top(1) 如何能够显示不同 CPU 的占用情况。这是 patch 过之后的输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
last pid:  1773;  load averages:  0.43,  0.19,  0.16                                                                                        up 0+00:34:35  16:17:04
97 processes:  1 running, 96 sleeping
CPU 0: 20.8% user,  0.0% nice,  0.0% system,  0.0% interrupt, 79.2% idle
CPU 1:  3.1% user,  0.0% nice,  0.0% system,  0.0% interrupt, 96.9% idle
Mem: 517M Active, 21M Inact, 577M Wired, 11M Cache, 48K Buf, 810M Free
Swap: 2048M Total, 2048M Free

 PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND  
 1236 delphij 1 104 0 232M 143M select 1 4:37 37.06% Xorg  
 1768 delphij 1 8 0 164M 52704K nanslp 1 0:07 36.28% kicker  
 1771 delphij 1 8 0 6212K 1664K wait 0 0:00 3.17% sh  
 1772 delphij 1 45 0 8020K 1656K select 1 0:00 2.39% ksysguardd  
 1756 delphij 1 20 0 10648K 3596K pause 1 0:00 1.17% csh  
 1754 delphij 1 4 0 11764K 1588K sbwait 1 0:00 0.78% gnome-pty-helper  
 1751 delphij 2 -8 0 136M 25756K piperd 0 0:00 0.68% gnome-terminal  

FreeBSD 8 中已经包含了这个功能。

参与评论

1GB page on AMD processor

• Kernel

So now AMD 0x10 processors can handle 1GB pages, according to Alan Cox’s commit today! It would be exciting to see it on FreeBSD 8.0 (already in -HEAD).

(I’m still looking for a development desktop PC donation, see the FreeBSD wantlist)

参与评论

学习一个东西最好的办法还是写点什么……

• Development

很久以前有一种说法是,如果你希望学Unix,那么途径之一就是自己写一个Unix内核出来。这么多年以来,其实成功的人只有1个 :-)

不过,想要学习VFS这样的东西,只要写一个FS就可以了。在tmpfs上面跑了两个小时的stress2,系统还是活的很好,当然还有一些问题没有修完,但对VFS的锁的理解又加深了许多。

参与评论

tmpfs开发告一段落

• Kernel

pointyhat集群的kris老大前天发来了tmpfs的初步测试结果,很振奋。目前,tmpfs的性能在测试用例的环境下已经达到了md+ufs最佳性能的2-2.5倍,并且,得益于在向FreeBSD移植过程中增加的细粒度上锁,tmpfs在多CPU的环境下表现出了非常好的可伸缩性。

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

FreeBSD 7新增了iscsi支持

• Kernel

果然不出所料,Scott Long同学commit了Daniel Braniss的iSCSI发起端(客户端)实现。这样,FreeBSD 7.0-RELEASE将成为第一个包含iSCSI客户端实现的版本(之前FreeBSD通过net/iscsi-target支持target模式)。

参与评论

cpufreq和powerd

• Kernel

之前一直没太注意这个功能。记两笔(都是说的7.0,6.x也许有,不过我没查):

  1. 内核配置中增加:

device cpufreq

默认GENERIC里面有。

  1. /etc/rc.conf 中增加:

powerd_enable=“YES”

然后系统就能够根据忙闲自动切换CPU频率了。理论上这个可以有效地降低桌面CPU的温度。

参与评论

关于fork的竞态条件修正MFC了

• Kernel

今年2月底的时候我跟 李逵 发现了一个fork的race,然后我做了一个fix。在当时看来,这个fix并不是很理想(会在进程fork的时候增加两次PROC锁的持放操作),但与有人提出来的另外一种解决方案,也就是利用EVENTHANDLER(9)机制去作callback相比,这个解法没有活锁问题。

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

ULE 3.0

• Kernel

Jeff提交了ULE调度器的3.0版(sched_ule.c,v 1.200,巧合?:) 这个版本对调度器本身的上锁进行了细化,从而带来了性能改善(最上面那根黄线,之前是下面那根青色的线)。

参与评论