Le's profileSomething like a home pa...PhotosBlogListsMore ![]() | Help |
|
November 07 需要补习一下x86_64架构的知识了 http://www.intel.com/products/processor/manuals/ http://www.x86-64.org/documentation/abi.pdf 市场份额高了就有一个好处 可以逼的别人不得不学你的东西 现在我们学别人的东西,以后要让他们学我们的东西 November 03 usb_modeswitch.conf for D-Link DWM-162-U5办了个电信的3g网卡包月,一个月60小时,足够我用了。 我每天在华为上2个小时撑死了。 网卡是D-Link DWM-162-U5。 我今天才知道有这种可以切换模式的usb设备。 刚插上是u盘,里面有autorun的程序,自动装驱动和拨号程序。 这个驱动有切换模式的功能。 以后再插这个网卡,就会立即从u盘转成网卡。 Linux里有个usb_modeswitch程序。 我用usbdeview和sniffusb在windows里找到了网卡设备的vendor id和product id。 并误打误撞的找到了MessageContent(usb_modeswitch.conf里的一个值) 然后修改了一下内核驱动(又多了一个内核补丁) 最后从网上拷了个wvdial.conf,终于成功了。 然后,发现,其实要从u盘转成网卡,eject即可,囧 October 18 wu zhangjin最近干的不错 提交了很多龙芯的补丁。http://www.nabble.com/user/UserPosts.jtp?user=1492350 我现在没有太多时间花在这上面,但这件事依然有人在做,看着很欣慰。 另外,我刚刚发现layman中已经有了我的龙芯overlay。 http://www.gentoo-cn.org/gitweb/?p=loongson.git;a=summary http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/en/overlays/layman-global.txt?r1=1.349&r2=1.350 中国第一个被官方收录的Gentoo镜像http://gentoo.aditsu.net/ http://www.gentoo.org/main/en/mirrors2.xml whois了一下,发现此人身居香港。 Registrant: Adrian Sandor Private Tai Po, N/A Hong Kong 试了一下速度,跟飞的一样。不知道在大陆如何。 哎,可惜中国人缺乏融入开源社区的主动性(可能和中国人含蓄内敛的民族性格有关)。 否则这个第一,怎么会让老外拿去。 5个避免生气的方法一是躲避;二是转移,人家骂你,你去下棋、钓鱼,没听见;三是释放,但要注意,人家骂你,你再去骂别人不叫释放,是找知心朋友谈谈,
释放出来,要不然搁在心里要得病的;四是升华,就是人家越说你,你越好好干;五是控制,这是最主要的一个方法,就是你怎么骂我不怕。 October 17 斯德哥尔摩综合症自有人类文明开始,有一种心理病症可能就已存在,然而直到上世纪70年代,这种病症才由于一个刑事案件受到重视,并以此得以命名,这就是斯德哥尔摩综合症(Stockholm syndrome)。 http://www.linuxforum.net/forum/showflat.php?Cat=&Board=life&Number=733267&page=0&view=collapsed&sb=5&o=0&fpart= October 12 apache performance tuninghttp://httpd.apache.org/docs/2.0/misc/perf-tuning.html 另外原来在gentoo里,如果不指定APACHE2_MPMS,但指定了threads USE flag,那么就会启用MPM worker. http://httpd.apache.org/docs/2.0/mod/worker.html October 11 如何查看一个listening socket的accept queue已满? 各位已经知道的不要笑话俺。这个惊天大秘密终于被我发现了,考! 看一看 Documentation/networking/proc_net_tcp.txt 00000150:00000000 01:00000019 00000000 | | | | |--> number of unrecovered RTO timeouts | | | |----------> number of jiffies until timer expires | | |----------------> timer_active (see below) | |----------------------> receive-queue |-------------------------------> transmit-queue 这个receive-queue就是:sk->sk_ack_backlog 具体的代码在:http://lxr.linux.no/#linux+v2.6.31/net/ipv4/tcp_ipv4.c#L2236 于是我终于大概明白了为什么我的gentoo-cn.org过一段时间就会连接不上…… 且看gentoo-cn.org上现在的80端口的sk_ack_backlog大小: $ cat /proc/net/tcp | grep 00:0050 5: 00000000:0050 00000000:0000 0A 00000000:00000081 02:0000000A 00000000 0 0 11883408 2 980000003eb4ad00 300 0 0 2 -1 注意粗体部分:0x81,就是129!正好大于128!!! 128是什么?128就是 /proc/sys/net/core/somaxconn, so max connections, 默认的accept q大小!!! 所以内核就会认为acceptq满了!!!http://lxr.linux.no/#linux+v2.6.31/include/net/sock.h#L539 所以后续连接最多只能处于SYN_RECV状态,而永远不会再有连接转成ESTABLISHED状态!!! 不过问题还没最终解决。因为目前我不能理解的是,为什么有129这么高。而且如果说是因为没有accept(),那服务器端也没有CLOSE_WAIT状态的连接。 啊!!! PS:发现apache配置中MaxClient为150,而目前有150个线程疑似处于死锁状态: #0 0x2acd4144 in __lll_lock_wait () from /lib/libpthread.so.0 #1 0x2accfbb8 in pthread_cond_destroy@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0x2bae081c in my_thread_end () from /usr/lib/libmysqlclient_r.so.15 #3 0x2b5b4808 in zm_deactivate_mysql () from /usr/lib/apache2/modules/libphp5.so #4 0x2b6f48a8 in module_registry_cleanup () from /usr/lib/apache2/modules/libphp5.so #5 0x2b6ffedc in zend_hash_reverse_apply () from /usr/lib/apache2/modules/libphp5.so #6 0x2b6f1e60 in zend_deactivate_modules () from /usr/lib/apache2/modules/libphp5.so #7 0x2b693d00 in php_request_shutdown () from /usr/lib/apache2/modules/libphp5.so #8 0x2b78aa84 in ?? () from /usr/lib/apache2/modules/libphp5.so 案情渐渐明朗…… PPS: 果然,杀掉其中一个进程(含27个线程,其中有25个死锁),就可以访问了。 我猜测apache在select()返回后,先创建线程,然后在线程中accept()。 但是现在线程总数的限制已经达到。所以无法创建新线程来accept()。 同时由于某目前尚未了解到的原因,原来的ESTABLISHED状态的连接也没了。 为解决这个问题,眼下之计,要加入debug信息重新emerge apache。 好在我有debugemerge脚本,哼哼。 然后在下次问题再重现时,再分析为何死锁。 不能学hw,明明缺少信息,还白耗时间在上面,硬要找出原因。 这个活就是出卖自己的时间啊 和其他工作仅出卖上班时间不同,这份工作是要随时准备好出卖任何一段时间段的时间。 除非你确实因故不能打开手机。 比如在飞机上…… October 08 it appears to not be an entirely attractive professionhttp://lwn.net/Articles/355416/ 最近的Real Time Linux Workshop上有个讨论,有关开发者和学术界的关系。中间提到如何鼓励学生参与社区的开发。但同时提到,如果学生根本就不想参与社区开发,那所有鼓励措施都是没用的。而且: As strange as it seems, it appears to not be an entirely attractive profession. It takes years of work to become a competent engineer; many are simply unwilling to put in that time. Whether things have gotten worse because people expect instant gratification now, or whether it has always been this way was a matter of debate. One panelist suggested that things will only get better when good engineers make more money than good lawyers. October 02 见过大爷September 27 今天尝试做了两件事一件未完成,一件基本完成。 基本完成的是升级ps3上的gentoo的内核到2.6.30。 不过发现有个bug,现在git clone ps3的git tree,看看是否还有。还有的话,我的内核补丁又要多一个了。 未完成的是一个诡异的2f盒子上的bug。 如果单启动X,然后再起一个firefox/pidgin,X就会死掉。再起xterm没事。 本来以为是X的补丁的问题。 后来发现startx没事。 后来发现死的原因是X的main里的无限循环里一个循环结束了,又开始了一个新的循环。 又一次执行了InitOutput,这里面最终会再次映射sysfs里显卡的resource文件到X的地址空间。 但实际上已经映射过了,libpciaccess在这种情况下会返回错误EINVAL。 因为我对X的工作机制还不完全了解,所以目前无法断定问题在哪里。 现在先记录一下,有空再来看。 明天要上班,调休。 国庆放11天假,但有两天是“强制”放掉的年假,囧…… 中国特色…… |
|
|