Re: Translating physical/linear address to virtual address
Hello Anish, On Fri, Oct 02, 2015 at 08:37:25PM -0700, anish singh wrote:
On Fri, Oct 2, 2015 at 12:58 PM, martin <iomartin@iomartin.net> wrote:
Hello,
I'm working with a kernel module that, through hardware events, gets a list of physical and linear memory addresses accessed by a program. I would like to convert these to the virtual addresses, as seen from the user space.
what are you trying to achieve?
I'm collecting some stats about these addresses, namely the amount of accesses to each page that happen under specific conditions (and thus why I use hardware events, instead of a simple memory trace). My goal is to use this data to make informed decisions on pages distribution in NUMA machines (with libnuma). The problem is that, as far as I understood, physical and linear addresses won't necessarily be the same between runs of the same program. Virtual addresses, on the other hand, can be made to be consistent (by turning address space layout randomization off). Using virtual addresses also have the advantage that I can do all memory management in userspace, with libnuma. Thank you, Martin
On 10/03/2015 12:04 AM, Martin Ichilevici de Oliveira wrote:
My goal is to use this data to make informed decisions on pages distribution in NUMA machines (with libnuma). The problem is that, as far as I understood, physical and linear addresses won't necessarily be the same between runs of the same program. Virtual addresses, on the other hand, can be made to be consistent (by turning address space layout randomization off).
Using virtual addresses also have the advantage that I can do all memory management in userspace, with libnuma.
Your not really understanding some basic architectural problems. Memory is shifted from segment to segment, the OS has paging, the hardware hides memory addressing as well, and then there is DME. How the motherboard chips lays out and allows access to memory segments is not something that can be manually controlled, even by the OS because it is firmware driven. I'm not saying that what you are doing is impossible, but it doesn't sound like you approach is likely to work. http://www.nylxs.com/docs/grad_school/arch/memory.pdf http://www.nylxs.com/docs/grad_school/arch/
participants (2)
-
Martin Ichilevici de Oliveira -
Ruben Safir