We are using oprofile on a Freescale 8548 powerPC to get a better understanding on what is running during times of peak CPU load.  We have collected a lot of useful data. Using a spreadsheet, we separated out the kernel and user space applications.  The results show a split of 55 / 45 % cpu utilization between user and kernel space.  However, the tools top, sar, and mpstat all show the user kernel split as 80 / 20 % during the time oprofile is running.  Unfortunately, we do not understand why we are seeing such a large difference between oprofile and the other tools.


For the oprofile data, we defined “kernel” as symbols from vmlinux and the kernel modules.  Everything else was put in the user bucket.  Oprofile was configured as follows:


opcontrol --init

opcontrol --vmlinux /root/op_data/vmlinux.fsl

opcontrol --separate=lib

opcontrol --cpu-buffer-size=1000000

opcontrol --event=CPU_CLK:50000:0:1:1 --event=DL1_RELOADS:1000:0:1:1


The profiling was run for a period of 2 – 3 minutes.  We have also changed the sampling rate of CPU_CLK to 10000 and 20000, but the results were the same.  The CPU utilization during this time was at or near 100%.  Does anyone have any ideas on what is happening?