lkml.org 
[lkml]   [2018]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 23/43] x86/mm: Fix swap entry comment and macro
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dave Hansen <dave.hansen@linux.intel.com>

    commit ace7fab7a6cdd363a615ec537f2aa94dbc761ee2 upstream

    A recent patch changed the format of a swap PTE.

    The comment explaining the format of the swap PTE is wrong about
    the bits used for the swap type field. Amusingly, the ASCII art
    and the patch description are correct, but the comment itself
    is wrong.

    As I was looking at this, I also noticed that the
    SWP_OFFSET_FIRST_BIT has an off-by-one error. This does not
    really hurt anything. It just wasted a bit of space in the PTE,
    giving us 2^59 bytes of addressable space in our swapfiles
    instead of 2^60. But, it doesn't match with the comments, and it
    wastes a bit of space, so fix it.

    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Luis R. Rodriguez <mcgrof@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Toshi Kani <toshi.kani@hp.com>
    Fixes: 00839ee3b299 ("x86/mm: Move swap offset/type up in PTE to work around erratum")
    Link: http://lkml.kernel.org/r/20160810172325.E56AD7DA@viggo.jf.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/x86/include/asm/pgtable_64.h | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/x86/include/asm/pgtable_64.h
    +++ b/arch/x86/include/asm/pgtable_64.h
    @@ -168,7 +168,7 @@ static inline int pgd_large(pgd_t pgd) {
    *
    * | ... | 11| 10| 9|8|7|6|5| 4| 3|2|1|0| <- bit number
    * | ... |SW3|SW2|SW1|G|L|D|A|CD|WT|U|W|P| <- bit names
    - * | OFFSET (14->63) | TYPE (10-13) |0|X|X|X| X| X|X|X|0| <- swp entry
    + * | OFFSET (14->63) | TYPE (9-13) |0|X|X|X| X| X|X|X|0| <- swp entry
    *
    * G (8) is aliased and used as a PROT_NONE indicator for
    * !present ptes. We need to start storing swap entries above
    @@ -179,7 +179,7 @@ static inline int pgd_large(pgd_t pgd) {
    #define SWP_TYPE_FIRST_BIT (_PAGE_BIT_PROTNONE + 1)
    #define SWP_TYPE_BITS 5
    /* Place the offset above the type: */
    -#define SWP_OFFSET_FIRST_BIT (SWP_TYPE_FIRST_BIT + SWP_TYPE_BITS + 1)
    +#define SWP_OFFSET_FIRST_BIT (SWP_TYPE_FIRST_BIT + SWP_TYPE_BITS)

    #define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > SWP_TYPE_BITS)


    \
     
     \ /
      Last update: 2018-08-14 19:59    [W:4.478 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site