On Mon, Apr 16, 2018 at 09:13:22AM -0700, Linus Torvalds wrote:
> See for example commit 8c06c7740d19 ("x86/pti: Leave kernel text
> global for !PCID") and in particular the performance numbers (that's
> an Atom microserver, but it was chosen due to lack of PCID).

Okay, I checked this on 32 bit and after some small changes I got
identical mappings with GLB set in all page-tables. The changes were:

        * Don't change permission bits in pti_clone_kernel_text().
          Changing them does not make a difference on 64 bit as
          everything cloned in this function is RO anyway. On 32 bit
          some areas are mapped RW, so it does make a difference there.
          
          Having different permissions between kernel and user
          page-table does also not make sense, because a permission
          mismatch in the TLB will cause a re-walk, which is as fast as
          not mapping it at all.

        * Mapping kernel-text to user-space on 32 bit too. Since there
          is no PCID this should improve performance. I have not
          measured that yet, but will do so before posting the next
          version.

I do some more testing and performance measurements and will send
version 6 of my patches beginning of next week when v4.17-rc2 is out.


Regards,

        Joerg

Reply via email to