Specifying Physical Memory Addresses
Hello Linux Community,
I am working on a kernel (3.4.3) and trying to figure out if I can specify (to some degree) the physical memory addresses a process will be assigned.
I can't find much information on the matter and have three main questions on the subject.
1. Is it possible to specify the physical memory addresses (to any extent) without breaking a large part of the system? I would mostly be interested in forcing certain processes to require memory from within a certain range (say Process X can only use pages between 0x00E00000 and 0x00F00000).
2. What is the kernel's standard algorithm for allocating physical memory? Does it just grab the next available page(s), or is there a higher degree of complexity involved?
3. Where can I find the code for allocating new physical pages? I assumed it would be secreted somewhere within page table initializations, but I can't seem to pin it down.
Any help or advice you can offer me would be much appreciate.