diff for duplicates of <1531328731.15351.3.camel@intel.com> diff --git a/a/content_digest b/N1/content_digest index 6c749ba..61eb4da 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -26,7 +26,10 @@ Mike Kravetz <mike.kravetz@oracle.com> Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> - " Pavel Machek <pavel@ucw.cz>Peter\0" + Pavel Machek <pavel@ucw.cz> + Peter Zijlstra <peterz@infradead.org> + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote:\n" @@ -77,4 +80,4 @@ "Thanks,\n" Yu-cheng -83c0b7e7be4becd2e7ce445ccded19b666c8f1a81408d67e26ea4e6acf3bd5a5 +ab85ccce55f787962b6d7042ed15be7c8df7c03000a060692e4c2dc6378074d7
diff --git a/a/1.txt b/N2/1.txt index efe234c..52c84c0 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -45,3 +45,7 @@ which means the SHSTK page has not been COW'ed. Is that right? Thanks, Yu-cheng +-- +To unsubscribe from this list: send the line "unsubscribe linux-doc" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N2/content_digest index 6c749ba..7bcc932 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -26,7 +26,10 @@ Mike Kravetz <mike.kravetz@oracle.com> Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> - " Pavel Machek <pavel@ucw.cz>Peter\0" + Pavel Machek <pavel@ucw.cz> + Peter Zijlstra <peterz@infradead.org> + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote:\n" @@ -75,6 +78,10 @@ "which means the SHSTK page has not been COW'ed. \302\240Is that right?\n" "\n" "Thanks,\n" - Yu-cheng + "Yu-cheng\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-doc\" in\n" + "the body of a message to majordomo@vger.kernel.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -83c0b7e7be4becd2e7ce445ccded19b666c8f1a81408d67e26ea4e6acf3bd5a5 +ffbf849dd7b99c9d88349e0c6e0a10e78cac0d1cdda07f329d9db4ee62e2cec4
diff --git a/a/1.txt b/N3/1.txt index efe234c..af892aa 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -3,12 +3,12 @@ On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote: > > > > There are three possible shadow stack PTE settings: > > -> > Normal SHSTK PTE: (R/O + DIRTY_HW) -> > SHSTK PTE COW'ed: (R/O + DIRTY_HW) -> > SHSTK PTE shared as R/O data: (R/O + DIRTY_SW) +> > A Normal SHSTK PTE: (R/O + DIRTY_HW) +> > A SHSTK PTE COW'ed: (R/O + DIRTY_HW) +> > A SHSTK PTE shared as R/O data: (R/O + DIRTY_SW) > > > > Update can_follow_write_pte/pmd for the shadow stack. -> First of all, thanks for the excellent patch headers. It's nice to +> First of all, thanks for the excellent patch headers.A A It's nice to > have > that reference every time even though it's repeated. > @@ -18,21 +18,21 @@ On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote: > > +static inline bool can_follow_write_pte(pte_t pte, unsigned int > > flags, > > + bool shstk) -> > { +> > A { > > + bool pte_cowed = shstk ? is_shstk_pte(pte):pte_dirty(pte); > > + -> > return pte_write(pte) || +> > A return pte_write(pte) || > > - ((flags & FOLL_FORCE) && (flags & FOLL_COW) && > > pte_dirty(pte)); > > + ((flags & FOLL_FORCE) && (flags & FOLL_COW) && > > pte_cowed); -> > } -> Can we just pass the VMA in here? This use is OK-ish, but I +> > A } +> Can we just pass the VMA in here?A A This use is OK-ish, but I > generally > detest true/false function arguments because you can't tell what they > are when they show up without a named variable. > -> But... Why does this even matter? Your own example showed that all +> But...A A Why does this even matter?A A Your own example showed that all > shadowstack PTEs have either DIRTY_HW or DIRTY_SW set, and > pte_dirty() > checks both. @@ -40,8 +40,8 @@ On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote: > That makes this check seem a bit superfluous. My understanding is that we don't want to follow write pte if the page -is shared as read-only. For a SHSTK page, that is (R/O + DIRTY_SW), -which means the SHSTK page has not been COW'ed. Is that right? +is shared as read-only. A For a SHSTK page, that is (R/O + DIRTY_SW), +which means the SHSTK page has not been COW'ed. A Is that right? Thanks, Yu-cheng diff --git a/a/content_digest b/N3/content_digest index 6c749ba..552e1de 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -26,7 +26,10 @@ Mike Kravetz <mike.kravetz@oracle.com> Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> - " Pavel Machek <pavel@ucw.cz>Peter\0" + Pavel Machek <pavel@ucw.cz> + Peter Zijlstra <peterz@infradead.org> + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Tue, 2018-07-10 at 16:37 -0700, Dave Hansen wrote:\n" @@ -34,12 +37,12 @@ "> > \n" "> > There are three possible shadow stack PTE settings:\n" "> > \n" - "> > \302\240 Normal SHSTK PTE: (R/O + DIRTY_HW)\n" - "> > \302\240 SHSTK PTE COW'ed: (R/O + DIRTY_HW)\n" - "> > \302\240 SHSTK PTE shared as R/O data: (R/O + DIRTY_SW)\n" + "> > A Normal SHSTK PTE: (R/O + DIRTY_HW)\n" + "> > A SHSTK PTE COW'ed: (R/O + DIRTY_HW)\n" + "> > A SHSTK PTE shared as R/O data: (R/O + DIRTY_SW)\n" "> > \n" "> > Update can_follow_write_pte/pmd for the shadow stack.\n" - "> First of all, thanks for the excellent patch headers.\302\240\302\240It's nice to\n" + "> First of all, thanks for the excellent patch headers.A A It's nice to\n" "> have\n" "> that reference every time even though it's repeated.\n" "> \n" @@ -49,21 +52,21 @@ "> > +static inline bool can_follow_write_pte(pte_t pte, unsigned int\n" "> > flags,\n" "> > +\t\t\t\t\tbool shstk)\n" - "> > \302\240{\n" + "> > A {\n" "> > +\tbool pte_cowed = shstk ? is_shstk_pte(pte):pte_dirty(pte);\n" "> > +\n" - "> > \302\240\treturn pte_write(pte) ||\n" + "> > A \treturn pte_write(pte) ||\n" "> > -\t\t((flags & FOLL_FORCE) && (flags & FOLL_COW) &&\n" "> > pte_dirty(pte));\n" "> > +\t\t((flags & FOLL_FORCE) && (flags & FOLL_COW) &&\n" "> > pte_cowed);\n" - "> > \302\240}\n" - "> Can we just pass the VMA in here?\302\240\302\240This use is OK-ish, but I\n" + "> > A }\n" + "> Can we just pass the VMA in here?A A This use is OK-ish, but I\n" "> generally\n" "> detest true/false function arguments because you can't tell what they\n" "> are when they show up without a named variable.\n" "> \n" - "> But...\302\240\302\240Why does this even matter?\302\240\302\240Your own example showed that all\n" + "> But...A A Why does this even matter?A A Your own example showed that all\n" "> shadowstack PTEs have either DIRTY_HW or DIRTY_SW set, and\n" "> pte_dirty()\n" "> checks both.\n" @@ -71,10 +74,10 @@ "> That makes this check seem a bit superfluous.\n" "\n" "My understanding is that we don't want to follow write pte if the page\n" - "is shared as read-only. \302\240For a SHSTK page, that is (R/O + DIRTY_SW),\n" - "which means the SHSTK page has not been COW'ed. \302\240Is that right?\n" + "is shared as read-only. A For a SHSTK page, that is (R/O + DIRTY_SW),\n" + "which means the SHSTK page has not been COW'ed. A Is that right?\n" "\n" "Thanks,\n" Yu-cheng -83c0b7e7be4becd2e7ce445ccded19b666c8f1a81408d67e26ea4e6acf3bd5a5 +e2aca515836017030ed96150c413a12fb4af09e574c4f4775ab9d89929087f34
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.