2015-04-14 13:16:17

by Alexander Kuleshov

[permalink] [raw]
Subject: x86_64: Question about fixmaps

Hello All,

I'm reading x86_64 source code and trying to understand where are
fixmaps space in the virtual memory space. If I understand correctly
(but i'm really not sure about it), fixmap space is after vsyscall
space. As Documentation/x86/x86_64/mm.txt says vsyscall virtual space
is:

ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls

With 'earlyprintk' i got FIXADDR_START and FIXADDR_TOP and they are:

FIXADDR_START - 0xffffffffff779000L
FIXADDR_TOP - 0xffffffffff7ff000L

with these addressess FIXADDR_START/FIXADDR_TOP overlap vsyscalls
area. Is it correct case that fixmaps are in vsyscal virtual memory
space or I'm wrong somewhere?

Thank you.


2015-04-15 00:28:57

by Andy Lutomirski

[permalink] [raw]
Subject: Re: x86_64: Question about fixmaps

On 04/14/2015 06:16 AM, Alexander Kuleshov wrote:
> Hello All,
>
> I'm reading x86_64 source code and trying to understand where are
> fixmaps space in the virtual memory space. If I understand correctly
> (but i'm really not sure about it), fixmap space is after vsyscall
> space. As Documentation/x86/x86_64/mm.txt says vsyscall virtual space
> is:
>
> ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls
>
> With 'earlyprintk' i got FIXADDR_START and FIXADDR_TOP and they are:
>
> FIXADDR_START - 0xffffffffff779000L
> FIXADDR_TOP - 0xffffffffff7ff000L
>
> with these addressess FIXADDR_START/FIXADDR_TOP overlap vsyscalls
> area. Is it correct case that fixmaps are in vsyscal virtual memory
> space or I'm wrong somewhere?

It's the other way around. vsyscalls are in the fixmap. I should fix
the docs.

--Andy