Virtual Memory map

arshad hussain arshad.super at gmail.com
Wed Dec 13 05:44:08 EST 2017


On Wed, Dec 13, 2017 at 1:58 PM, Damian Tometzki
<damian.tometzki at icloud.com> wrote:
> Hello,
>
> On more question. The second example:
>
> ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for
> hypervisor
>
>
> What are the relation between the Bits (=43bits) and the Adresse Range ?

If user-space stars and ends on 0x000000000000000 - 0x00007fffffffffff.
And kernel space starts and ends on 0xffff8000000000 - 0xffffffffffffffff.

Then this lines means

> ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for hypervisor

That guard hole is part of kernel address space. Which starts at
ffff800000000000
and ends at ffff87ffffffffff.  The '=43' is the hint that
ffff87ffffffffff - ffff800000000000 = 43bits.

Valdis has already answered regarding the "upper kernel half" when
48th bit is sign extended
and are all 1's. And "lower user half' where the bits are all 0.
Please do read more about
canonical and non-canonical address.

>
> Is it possible to calculate the 43 Bits from the range ?  If yes, how ?
>

Not sure I understood the question. Maybe the above answer would help.

Thanks



More information about the Kernelnewbies mailing list