vmplayer 3.1.3-324285 + Linux 2.6.37

I need to use vmplayer because Microsoft Windows is required for Linux-unfriendly IT infrastructures, document formats, Online ATMs, etc. However the modules of the latest vmplayer, v3.1.3, cannot build under Linux 2.6.37. So:

Extract the tar balls under /usr/lib/vmware/modules/source , then apply this patch. Enter each directory, make.

Put the generated *.o under /lib/modules/$(uname -r)/misc , symlink them to *.ko, depmod -a. Done.

oprofile

First you have to enable oprofile in your kernel, i.e. you must have

CONFIG_PROFILING=y
CONFIG_OPROFILE=y

in your kernel config. Then you need userspace utilities to use it. I used oprofile 0.9.4. First of all you need to setup it with something like

opcontrol --init
opcontrol --no-vmlinux
opcontrol --callgraph=5

After that, here is the script I used to do profiling against a program:

john@buddha:~$ cat bin/profile
#!/bin/sh

which sudo && SUDO=sudo || SUDO=

${SUDO} opcontrol --shutdown
${SUDO} rm -rf /var/lib/oprofile/*
${SUDO} opcontrol --status
${SUDO} opcontrol --start-daemon
${SUDO} opcontrol --start
$@
${SUDO} opcontrol --stop
${SUDO} opcontrol --dump
${SUDO} opcontrol --shutdown

Use ‘profile <the name of your executable>’ to get the profile. Use ‘opreport’ to read the result. ‘opreport -l’ might be more meaningful. You can use ‘opreport <the name of your executable>’ to only get the result related to your program, but personally I prefer to check the whole system.