2009-02-19 Notes
119 views | with one comment
今天下午真是惊悚,我想把机房的winxp分区删了,ftp上好放点美剧,结果winxp的那个分区是扩展分区,删掉后导致linux的几个分区都消失了。赶紧把硬盘拆下来装到实验室用Disk Genius修复了下,数据基本没什么损坏,分区表还是有点问题。差一点俺就见不到这个博客了 =_=
然后把昨天折腾了一晚上没搞定的debian 4安装搞定了,关键在于netinst.iso的版本号要和hd-media的完全一致,4.0r7。
1. 编译xen/linux所需的包
apt-get install gettext zlib1g-dev python-dev libncurses-dev libssl-dev libx11-dev bridge-utils iproute gawk
另外 initrd文件的生成需要安装initrd-tools包
2. kernel中memory barrier的实现很简单,barrier宏展开后就是
asm volatile(“” : : : “memory”)
这样就保证了在barrier()执行后,cpu不会直接读取寄存器中cache的内存值。
3. 生成initrd
mkinitramfs -o /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen
4. syscall和m2_fastcall的性能测试
测的是getpid()函数,当然为了保证m2_fastcall不在运行逻辑上吃亏,它的对应功能仅仅是返回current->pid,第一次测出来的结果是syscall明显由于m2_fastcall。宋大牛指出很有可能是glibc做了缓存,果然,自己用汇编发软中断后的数据就正常了。
Orz。膜拜大牛。
[Reply]
felix021
14 Jul 09 at 11:43 am