diff for duplicates of <1490379805.2733.133.camel@linux.intel.com> diff --git a/a/1.txt b/N1/1.txt index 837c6dc..a2020c0 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -15,30 +15,30 @@ On Mon, 2017-03-13 at 11:44 -0400, Zi Yan wrote: > Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> > Signed-off-by: Zi Yan <zi.yan@cs.rutgers.edu> > --- -> A arch/x86/include/asm/pgtable_64.hA A A A | 12 +++++++++--- -> A arch/x86/include/asm/pgtable_types.h | 10 +++++----- -> A 2 files changed, 14 insertions(+), 8 deletions(-) +> arch/x86/include/asm/pgtable_64.h | 12 +++++++++--- +> arch/x86/include/asm/pgtable_types.h | 10 +++++----- +> 2 files changed, 14 insertions(+), 8 deletions(-) > > diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h > index 73c7ccc38912..a5c4fc62e078 100644 > --- a/arch/x86/include/asm/pgtable_64.h > +++ b/arch/x86/include/asm/pgtable_64.h > @@ -157,15 +157,21 @@ static inline int pgd_large(pgd_t pgd) { return 0; } -> A /* -> A * Encode and de-code a swap entry -> A * -> - * |A A A A A ...A A A A A A A A A A A A | 11| 10|A A 9|8|7|6|5| 4| 3|2|1|0| <- bit number -> - * |A A A A A ...A A A A A A A A A A A A |SW3|SW2|SW1|G|L|D|A|CD|WT|U|W|P| <- bit names -> - * | OFFSET (14->63) | TYPE (9-13)A A |0|X|X|X| X| X|X|X|0| <- swp entry -> + * |A A A A A ...A A A A A A A A A A A A | 11| 10|A A 9|8|7|6|5| 4| 3|2| 1|0| <- bit number -> + * |A A A A A ...A A A A A A A A A A A A |SW3|SW2|SW1|G|L|D|A|CD|WT|U| W|P| <- bit names -> + * | OFFSET (14->63) | TYPE (9-13)A A |0|0|X|X| X| X|X|SD|0| <- swp entry -> A * -> A * G (8) is aliased and used as a PROT_NONE indicator for -> A * !present ptes.A A We need to start storing swap entries above -> A * there.A A We also need to avoid using A and D because of an -> A * erratum where they can be incorrectly set by hardware on -> A * non-present PTEs. +> /* +> * Encode and de-code a swap entry +> * +> - * | ... | 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 (9-13) |0|X|X|X| X| X|X|X|0| <- swp entry +> + * | ... | 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 (9-13) |0|0|X|X| X| X|X|SD|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 +> * there. We also need to avoid using A and D because of an +> * erratum where they can be incorrectly set by hardware on +> * non-present PTEs. > + * > + * SD (1) in swp entry is used to store soft dirty bit, which helps us > + * remember soft dirty over page migration @@ -47,10 +47,3 @@ On Mon, 2017-03-13 at 11:44 -0400, Zi Yan wrote: > + * but also G. but also L and G. - - --- -To unsubscribe, send a message with 'unsubscribe linux-mm' in -the body to majordomo@kvack.org. For more info on Linux MM, -see: http://www.linux-mm.org/ . -Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index c940cb6..3203e68 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -35,30 +35,30 @@ "> Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>\n" "> Signed-off-by: Zi Yan <zi.yan@cs.rutgers.edu>\n" "> ---\n" - "> A arch/x86/include/asm/pgtable_64.hA A A A | 12 +++++++++---\n" - "> A arch/x86/include/asm/pgtable_types.h | 10 +++++-----\n" - "> A 2 files changed, 14 insertions(+), 8 deletions(-)\n" + "> \302\240arch/x86/include/asm/pgtable_64.h\302\240\302\240\302\240\302\240| 12 +++++++++---\n" + "> \302\240arch/x86/include/asm/pgtable_types.h | 10 +++++-----\n" + "> \302\2402 files changed, 14 insertions(+), 8 deletions(-)\n" "> \n" "> diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h\n" "> index 73c7ccc38912..a5c4fc62e078 100644\n" "> --- a/arch/x86/include/asm/pgtable_64.h\n" "> +++ b/arch/x86/include/asm/pgtable_64.h\n" "> @@ -157,15 +157,21 @@ static inline int pgd_large(pgd_t pgd) { return 0; }\n" - "> A /*\n" - "> A * Encode and de-code a swap entry\n" - "> A *\n" - "> - * |A A A A A ...A A A A A A A A A A A A | 11| 10|A A 9|8|7|6|5| 4| 3|2|1|0| <- bit number\n" - "> - * |A A A A A ...A A A A A A A A A A A A |SW3|SW2|SW1|G|L|D|A|CD|WT|U|W|P| <- bit names\n" - "> - * | OFFSET (14->63) | TYPE (9-13)A A |0|X|X|X| X| X|X|X|0| <- swp entry\n" - "> + * |A A A A A ...A A A A A A A A A A A A | 11| 10|A A 9|8|7|6|5| 4| 3|2| 1|0| <- bit number\n" - "> + * |A A A A A ...A A A A A A A A A A A A |SW3|SW2|SW1|G|L|D|A|CD|WT|U| W|P| <- bit names\n" - "> + * | OFFSET (14->63) | TYPE (9-13)A A |0|0|X|X| X| X|X|SD|0| <- swp entry\n" - "> A *\n" - "> A * G (8) is aliased and used as a PROT_NONE indicator for\n" - "> A * !present ptes.A A We need to start storing swap entries above\n" - "> A * there.A A We also need to avoid using A and D because of an\n" - "> A * erratum where they can be incorrectly set by hardware on\n" - "> A * non-present PTEs.\n" + "> \302\240/*\n" + "> \302\240 * Encode and de-code a swap entry\n" + "> \302\240 *\n" + "> - * |\302\240\302\240\302\240\302\240\302\240...\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 11| 10|\302\240\302\2409|8|7|6|5| 4| 3|2|1|0| <- bit number\n" + "> - * |\302\240\302\240\302\240\302\240\302\240...\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|SW3|SW2|SW1|G|L|D|A|CD|WT|U|W|P| <- bit names\n" + "> - * | OFFSET (14->63) | TYPE (9-13)\302\240\302\240|0|X|X|X| X| X|X|X|0| <- swp entry\n" + "> + * |\302\240\302\240\302\240\302\240\302\240...\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 11| 10|\302\240\302\2409|8|7|6|5| 4| 3|2| 1|0| <- bit number\n" + "> + * |\302\240\302\240\302\240\302\240\302\240...\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|SW3|SW2|SW1|G|L|D|A|CD|WT|U| W|P| <- bit names\n" + "> + * | OFFSET (14->63) | TYPE (9-13)\302\240\302\240|0|0|X|X| X| X|X|SD|0| <- swp entry\n" + "> \302\240 *\n" + "> \302\240 * G (8) is aliased and used as a PROT_NONE indicator for\n" + "> \302\240 * !present ptes.\302\240\302\240We need to start storing swap entries above\n" + "> \302\240 * there.\302\240\302\240We also need to avoid using A and D because of an\n" + "> \302\240 * erratum where they can be incorrectly set by hardware on\n" + "> \302\240 * non-present PTEs.\n" "> + *\n" "> + * SD (1) in swp entry is used to store soft dirty bit, which helps us\n" "> + * remember soft dirty over page migration\n" @@ -66,13 +66,6 @@ "> + * Bit 7 in swp entry should be 0 because pmd_present checks not only P,\n" "> + * but also G.\n" "\n" - "but also L and G.\n" - "\n" - "\n" - "--\n" - "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" - "the body to majordomo@kvack.org. For more info on Linux MM,\n" - "see: http://www.linux-mm.org/ .\n" - "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" + but also L and G. -891cd559947674a79583f30d9d83c7cd118f633f7b06d4de6c024dd8b60e1dba +931b88c5be9d5264c8ad016dd8df49b7557dd4fc7286c136f0750f94f6fab9ae
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.