Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am working on MUlti-processor record-replay feature of a virtual machine. I have a log of non-deterministic memory access done in the virtual machine by virtual CPUs.
A very high proportion of these point to kernel space memory ie above 0Xc0000000.
For example heres a list of 10 most accessed kernel memory address after running SPLASH benchmark in the Virtual machine


I want to know if there is some way of finding what exactly are in these memory address ... is it the kernel stack , vsyscall page, scheduler's ready list ...
So that i can then think of some way of solving this overhead to speed up record replay....
Hints to where to look in the kernel code is welcome


share|improve this question

On a physical machine I would take a look at /boot/System.map* (whatever that file is called in your distribution).

My guess is that the same is true within a KVM VM.

share|improve this answer

KVM-QEMU supports debugging - you can connect to the virtual machine with gdb and see what's happening in there (you'll need to set up the debug symbols properly of course).

share|improve this answer

Well , some of the address point to static data in the kernel Ex incrementers used by seqlocks ..
An objdump of the kernel reveals about half of these address, but for the ones which are stored on stack and heap objdump is of no use ...

cat /proc/kallsysm reveals all variable/functions which were exported by the module containing it.

I dont think we can know what was stored in those locations ....

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.