Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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

0xfffb5000                                                    
0xc1779db0                                               
0xc18b6910                                                      
0xc1771a44                                                      
0xc1771a40                                                      
0xc1779e00                                                      
0xc18b67e0                                                      
0xc18b693c                                                      
0xc18b67f0                                                      
0xfffa1000

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

Thanks

share|improve this question
add comment

3 Answers 3

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
add comment

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
add comment

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
add comment

Your Answer

 
discard

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.