2010/4

bonding和bridge对netpoll的支持

最近我在做 netpoll 的东东,具体说是让 bridge 和 bonding 支持 netpoll,这样我们就可以通过 bridge 和 bonding 设备来使用 netconsole 和 netdump 了(注:netdump 已经被遗弃)。三个补丁见这里:

http://lkml.org/lkml/2010/4/5/13

http://lkml.org/lkml/2010/4/5/14

http://lkml.org/lkml/2010/4/5/15

其实很简单,无非就是实现几个回调函数,传递几个关键的指针。最纠结的地方是 netpoll 的那几个成员变量,一步错了导致后面全错,不过说到底,还是对 net 部分的代码不熟悉。

最气人的是,不少时候明明是一个成员忘了赋值,结果导致 lockdep 警告,有时甚至连警告都没有直接死掉,非常莫名其妙!所以我就说啊,你遇到 oops,soft lockup 不要紧张,你最起码是已经得到很多错误信息了,真要是一条错误信息都没有,那才紧张呢!你问我这时候怎么办?没什么好办法,只能尝试缩小可疑代码的范围,然后凭直觉去猜问题应该在哪里!比如我这个,我可以通过使用或不使用 netconsole 来判断问题是出在我的补丁上还是原有代码中(不要太迷信原有代码,它们也会有 bug 的),如果是出在我的补丁中,那到底是哪一块,哪个函数。如果没任何信息,系统死掉很可能是因为什么?当然是加锁了!重新检查锁到底有没有用对。如果还不行就老老实实地加 printk 吧!

还有就是,不要迷恋现象,现象并不一定能正确表明问题所在,它只是问题带来的症状,仅此而已!换句话说,可能是前面的一个小问题引发了后面大的症状,这并不意味着问题就是后面的一个大问题,也不意味着问题就真如症状直接表明的那样。静下心来仔细分析症状的每一个细节,不要轻易下结论说问题应该在哪里。

赤果果的教训啊!

党妈的关怀

先上CCAV的新闻

山西王家岭矿难救援现场,伴随着营养液传送到井下的,有塞在空矿泉水瓶子里的两封信。

一封信写道:

亲爱的工友们:党中央、国务院和全国人民时刻都在关注你们的安危;省委、省政府领导正在现场指挥抢险工作。同志们都为你们传递的生命的信息万分高兴,都在争分夺秒、全力以赴救援。你们一定要坚定信心,坚持到底!坚持就是胜利!

另一封信写道:

弟兄们你们好:请耐心等待,地面上国家领导、省领导带领队伍在全力以赴,加管、加泵排水。很快就会排下去的,一定要坚持、坚持、再坚持!!!下面气体、风量情况如何?需要我们做些什么?请回信。山西焦煤汾西救护大队。

==================关怀的分割线==================

看完之后我灰常鸡动!我们知道,贵党早在抗战时期就靠书信和地下工作者连络,而如今建国60多年了依然笔耕不辍!对于地下工作者们来说,党妈的关怀比空气,比水,比食物更重要!真是“纵做鬼,也幸福”!

我只有一个疑问:地下工作者们在下面怎么回信呢?

愚人节的两个玩笑

1. 那天 kernel.org 翻了,有图有真相(截图来自linuxtoy):

看到之后首先就是看其html源代码,你会发现,其实里面的字母也是翻的。怎么说呢?就比如说字母q,翻过来就是b,这个是最简单的,其它的字母就没这么容易了,所以他们就找其它语言里的字母。我估计很可能有俄文,俄文里好多字母感觉就是英文字母翻转的……总之,字母都是这样翻转的。作成一个表格,然后用程序什么的就可以完成了。

2. LKML 上果然有人故意搞笑。原帖在这里,大体是说,我有两台机器,第一个是赛扬,第二个是四核,这是主要区别,/proc/cpuinfo是只读的,可我想让第一台机器的性能赶上第二个,我能不能在第一台机器上运行:

echo -n “model name      : Intel(R) Core(TM)2 Quad CPU    Q6600  @
2.40GHz” > /proc/cpuinfo

捏?回复说,chmod +w /proc/cpuinfo就可以啦!

啧啧,这两个人真有默契。