• Ingo Molnar's avatar
    x86/mm/doc: Enhance the x86-64 virtual memory layout descriptions · 32b89760
    Ingo Molnar authored
    After the cleanups from Baoquan He, make it even more readable:
    
     - Remove the 'bits' area size column: it's pretty pointless and was even
       wrong for some of the entries. Given that MB, GB, TB, PT are 10, 20,
       30 and 40 bits, a "8 TB" size description makes it obvious that it's
       43 bits.
    
     - Introduce an "offset" column:
    
        --------------------------------------------------------------------------------
        start addr       | offset     | end addr         |  size   | VM area description
        -----------------|------------|------------------|---------|--------------------
        ...
        ffff880000000000 | -120    TB | ffffc7ffffffffff |   64 TB | direct mapping of all physical memory (page_offset_base),
                                                                     this is what limits max physical memory supported.
    
       The -120 TB notation makes it obvious where this particular virtual memory
       region starts: 120 TB down from the top of the 64-bit virtual memory space.
       Especially the layout of the kernel mappings is a *lot* more obvious when
       written this way, plus it's much easier to compare it with the size column
       and understand/check/validate and modify the kernel's layout in the future.
    
     - Mark the part from where the 47-bit and 56-bit kernel layouts are 100% identical,
       this starts at the -512 GB offset and the EFI region.
    
     - Re-shuffle the size desciptions to be continous blocks of sizes, instead of the
       often mixed size. I.e. write "0.5 TB" instead of "512 GB" if we are still in
       the TB-granular region of the map.
    
     - Make the 47-bit and 56-bit descriptions use the *exact* same layout and wording,
       and only differ where there's a material difference. This makes it easy to compare
       the two tables side by side by switching between two terminal tabs.
    
     - Plus enhance a lot of other stylistic/typographical details: make the tables
       explicitly tabular, add headers, enhance certain entries, etc. etc.
    
    Note that there are some apparent errors in the tables as well, but I'll fix
    them in a separate patch to make it easier to review/validate.
    
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: corbet@lwn.net
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: thgarnie@google.com
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    32b89760
mm.txt 10.5 KB