Nice article about gcc

Here is one nice write about gcc.

Comments (1)

GNU C __attribute__

Linux kernel actively use __attribute__ all over the places. Here is a nice introduction and also with links to complete reference.

Leave a Comment


过去 我总不愿回答,


但是 我们作业工整,

作文课上 我们写下了这样的话,

亲爱的爷爷奶奶 爸爸妈妈,

Comments (3)

Rich people social networking

see how rich VC and tech guys do social networking

Comments (1)

Vmware server + Fedora Core 6

VMWware server 1.0.1 build-29996 can not install flawlessly on FC6 with kernel 2.6.19-1.2911.fc6. Need some simple hack.

* Linux kernel version magic dismatch. You will dmesg show your something like “vmmon: version magic ‘2.6.19-1.2911.fc6 SMP mod_unload 686 REGPARM 4KSTACKS ‘ should be ‘2.6.19-1.2911.fc6 SMP mod_unload 586 REGPARM 4KSTACKS “. I modified the include/asm/module.h file, changed #elif defined CONFIG_M686 #define MODULE_PROC_FAMILY “686 ” to “586 ”

* module compilation failure. change vmnet source by following also need to link autoconf.h to config.h under include/linux in kernel source code.

That’s it!

Leave a Comment

Linux kernel, kgdb, vmware

Setup kgdb with supported kernel is quite straight forward by following the document. But there do have some small roadblocks, especially when you try to run the Linux as a VM in VMWare server.

  • With 2.6.8 or later kernel, you will not see “Waiting for connection from remote gdb…”, as pointed out at here. I was panic for a while when I could not figure out where the kernel stopped at;
  • Setup VMWare virtual serial port by following this.
  • Tricky: by default, kgdb over serial will use serial port 1 in CONFIG_KGDB_PORT_NUM, which is 2nd serial port. Had better change this to serial port 0, which is 1st serial port. The reason is we, at least I, usually add only 1 serial port in VMWare server…


  • kdgb cvs 02/07/2007 version can apply cleanly on 2.6.17 and runs ok.
  • kgdb latest can be found via “git clone git://”, as of 02/07/07, it is based on 2.6.18

Leave a Comment

Linux serial console with VMWare server.

Linux has a complete remote serial console how to available. So why need another one?

  • I just need a really simple guide to finish my work. And later when my 256KB main brain memory overflow, I can pick it up quickly.
  • I also want to run Linux virtual machine within VMWare server using virtual serial console support from VMWare.

Let us call the Linux virtual machine as “target” and Linux host running VMWare as “host”:

Target side: [most c&p from previously mentioned howto]

  1. To enable kernel support. Select Y for -> Device Drivers-> Character devices-> Serial drivers-> 8250/16550 and compatible serial support (SERIAL_8250 [=y]). Recompile kernel.
  2. To add kernel run time parameter. Modify grub.conf and use parameter like “title root (hd0,0) kernel /vmlinuz- ro root=/dev/sda3 console=ttyS0,9600n8 console=tty0”. These are recommended parameters. 9600 baud rate, no parity bit, 8 bit data bit, 1 stop bit, no flow control. Also leave the original tty0 usable. Of course, faster baud rate like 57600 will be better.
  3. Check and make sure mgetty is installed.
  4. To enable login prompt. Add one line in /etc/inittab “S0:23:respawn:/sbin/mgetty ttyS0”. Modify /etc/mgetty+sendfax/mgetty.config. Add “port ttyS0 speed 9600 direct yes data-only yes toggle-dtr yes need-dsr yes port-owner root port-group root port-mode 600 login-prompt @ \P login:40 login-time 60 term vt102”
  5. To enable root login. Add ttyS0 to /etc/securetty.

VMWare VM setting:

  1. [C&P from here]. Power down your virtual machine and click “Edit Virtual Machine Settings”. Add a serial port, select “Connect to named pipe”, and provide the pipe name “/tmp/com_1”. (note that this isn’t really a named pipe, but a Unix-domain socket) Click “advanced settings” and set “yield CPU on poll”. You can also get to this setting from the device list once you finish adding the port.
  2. You can start the Linux VM now.

Host side:

  1. Install socat from here.
  2. run “socat -d -d /tmp/com_1 PTY:”. socat should report something like “PTY is /dev/pts/x”.
  3. start minicom, configure it with right serial port setting, save the configuration and run it.
  4. now from minicom should get a full functional console. Sometime need to be patient to wait the login console appear.

Note: VMWare allows a serial port to be (1) physical port, (2) output to file, and (3) named pipe. So if we only need to capture console output like oops or boot message, we can use (2) to output to foo, and do “tail -f foo” in host.

Comments (5)

IET+ESX alignment issue

If you met poorer than expected IO performance with ESX3 using IET, you might meet this alignment issue. VMWare has detailed explanation on how to align the VM partition.

Leave a Comment

Use shared cache with multi-core CPU

Dr. Dobb has an article about how to gain better performance by utilizing shared cache with multi-core CPUs. It will be more useful when we have 80 cores. Will we?

One “Cache Blocking Technique” is well explained here.

Leave a Comment

Another IET recipe

Steffen shared another IET recipe with some nice features:

  • active/passive storage controller
  • configuration management across cluster
  • dynamic updating of running ietd environment
  • dynamically add new targets and LUNs
  • handle size changes of LUNs
  • logical volume backup

Leave a Comment

Older Posts »