Is there a way to get the physical address of a locked memory page?
If a page is locked in main memory with an mlock()[note 1] system call, is there a practical way to get the physical address of the page in main memory?
The /proc/mem mechanism used to provide the content of physical memory if the process was privileged, but is now disabled by default. As far as I know, the physical address of a logical memory page was not available, except indirectly by spying on the kernel's page tables.
If there is an existing mechanism to get the physical address, it may work for any memory page, but of course is not reliable unless the page is locked.
Note 1: An mmap() call with a locking option will probably work the same.
linux memory
add a comment |
If a page is locked in main memory with an mlock()[note 1] system call, is there a practical way to get the physical address of the page in main memory?
The /proc/mem mechanism used to provide the content of physical memory if the process was privileged, but is now disabled by default. As far as I know, the physical address of a logical memory page was not available, except indirectly by spying on the kernel's page tables.
If there is an existing mechanism to get the physical address, it may work for any memory page, but of course is not reliable unless the page is locked.
Note 1: An mmap() call with a locking option will probably work the same.
linux memory
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06
add a comment |
If a page is locked in main memory with an mlock()[note 1] system call, is there a practical way to get the physical address of the page in main memory?
The /proc/mem mechanism used to provide the content of physical memory if the process was privileged, but is now disabled by default. As far as I know, the physical address of a logical memory page was not available, except indirectly by spying on the kernel's page tables.
If there is an existing mechanism to get the physical address, it may work for any memory page, but of course is not reliable unless the page is locked.
Note 1: An mmap() call with a locking option will probably work the same.
linux memory
If a page is locked in main memory with an mlock()[note 1] system call, is there a practical way to get the physical address of the page in main memory?
The /proc/mem mechanism used to provide the content of physical memory if the process was privileged, but is now disabled by default. As far as I know, the physical address of a logical memory page was not available, except indirectly by spying on the kernel's page tables.
If there is an existing mechanism to get the physical address, it may work for any memory page, but of course is not reliable unless the page is locked.
Note 1: An mmap() call with a locking option will probably work the same.
linux memory
linux memory
asked Feb 7 at 4:55
bitchaserbitchaser
1062
1062
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06
add a comment |
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1402960%2fis-there-a-way-to-get-the-physical-address-of-a-locked-memory-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1402960%2fis-there-a-way-to-get-the-physical-address-of-a-locked-memory-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
How about using a debugger to get a core dump of the process?
– Xen2050
Feb 7 at 9:22
@Xen2050 I'm interested in runnning a memory test program like memtester, and identifying the actual RAM chip address, not the program's (virtual) address. I know there is a kernel table with the virtual-to-physical mapping, but I was hoping there is an existing mechanism for getting it without a new system call. Portability would be nice too, but is likely to be somewhat limited.
– bitchaser
Feb 7 at 23:06