What is cpu_entry_area?

Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
The documentation of the Linux kernel describes the virtual memory map.
It says:
fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping
What is this "cpu entry area"? Is it accessible in some way to code running in ring 3 (i.e. CPL3)?
I ask because I am experimenting with QEMU, and it seems that some CPL3 code that runs on the QEMU guest (Ubuntu server 18.04) attempts (I don't know whether it succeeds) to access memory in cpu_entry_area.
At first, I thought I did something wrong, as I thought that all addresses higher than 0x00007fffffffffff aren't accessible to CPL3, but then I found out about vsyscall (see here).
I tried to access vsyscall memory (specifically *(int *)0xffffffffff600000) from CPL3 code in the QEMU guest, and succeeded, but I got a segfault when I tried to access the cpu_entry_area (specifically *(int *)0xfffffe0000000ee0).
linux-kernel memory 64bit
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
up vote
0
down vote
favorite
The documentation of the Linux kernel describes the virtual memory map.
It says:
fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping
What is this "cpu entry area"? Is it accessible in some way to code running in ring 3 (i.e. CPL3)?
I ask because I am experimenting with QEMU, and it seems that some CPL3 code that runs on the QEMU guest (Ubuntu server 18.04) attempts (I don't know whether it succeeds) to access memory in cpu_entry_area.
At first, I thought I did something wrong, as I thought that all addresses higher than 0x00007fffffffffff aren't accessible to CPL3, but then I found out about vsyscall (see here).
I tried to access vsyscall memory (specifically *(int *)0xffffffffff600000) from CPL3 code in the QEMU guest, and succeeded, but I got a segfault when I tried to access the cpu_entry_area (specifically *(int *)0xfffffe0000000ee0).
linux-kernel memory 64bit
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
The documentation of the Linux kernel describes the virtual memory map.
It says:
fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping
What is this "cpu entry area"? Is it accessible in some way to code running in ring 3 (i.e. CPL3)?
I ask because I am experimenting with QEMU, and it seems that some CPL3 code that runs on the QEMU guest (Ubuntu server 18.04) attempts (I don't know whether it succeeds) to access memory in cpu_entry_area.
At first, I thought I did something wrong, as I thought that all addresses higher than 0x00007fffffffffff aren't accessible to CPL3, but then I found out about vsyscall (see here).
I tried to access vsyscall memory (specifically *(int *)0xffffffffff600000) from CPL3 code in the QEMU guest, and succeeded, but I got a segfault when I tried to access the cpu_entry_area (specifically *(int *)0xfffffe0000000ee0).
linux-kernel memory 64bit
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
The documentation of the Linux kernel describes the virtual memory map.
It says:
fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping
What is this "cpu entry area"? Is it accessible in some way to code running in ring 3 (i.e. CPL3)?
I ask because I am experimenting with QEMU, and it seems that some CPL3 code that runs on the QEMU guest (Ubuntu server 18.04) attempts (I don't know whether it succeeds) to access memory in cpu_entry_area.
At first, I thought I did something wrong, as I thought that all addresses higher than 0x00007fffffffffff aren't accessible to CPL3, but then I found out about vsyscall (see here).
I tried to access vsyscall memory (specifically *(int *)0xffffffffff600000) from CPL3 code in the QEMU guest, and succeeded, but I got a segfault when I tried to access the cpu_entry_area (specifically *(int *)0xfffffe0000000ee0).
linux-kernel memory 64bit
linux-kernel memory 64bit
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 2 mins ago
Oren Milman
1053
1053
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Oren Milman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |Â
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Oren Milman is a new contributor. Be nice, and check out our Code of Conduct.
Oren Milman is a new contributor. Be nice, and check out our Code of Conduct.
Oren Milman is a new contributor. Be nice, and check out our Code of Conduct.
Oren Milman is a new contributor. Be nice, and check out our Code of Conduct.
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
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f476768%2fwhat-is-cpu-entry-area%23new-answer', 'question_page');
);
Post as a guest
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
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
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