1. 24 Sep, 2019 1 commit
  2. 30 May, 2019 1 commit
  3. 02 May, 2019 2 commits
  4. 28 Apr, 2019 1 commit
  5. 21 Apr, 2019 1 commit
  6. 14 Oct, 2018 1 commit
  7. 15 May, 2018 1 commit
  8. 30 Mar, 2018 2 commits
  9. 01 Feb, 2018 1 commit
  10. 23 Aug, 2017 1 commit
  11. 17 Aug, 2017 1 commit
    • Aneesh Kumar K.V's avatar
      powerpc/mm: Don't send IPI to all cpus on THP updates · fa4531f7
      Aneesh Kumar K.V authored
      
      
      Now that we made sure that lockless walk of linux page table is mostly
      limitted to current task(current->mm->pgdir) we can update the THP
      update sequence to only send IPI to CPUs on which this task has run.
      This helps in reducing the IPI overload on systems with large number
      of CPUs.
      
      WRT kvm even though kvm is walking page table with vpc->arch.pgdir,
      it is done only on secondary CPUs and in that case we have primary CPU
      added to task's mm cpumask. Sending an IPI to primary will force the
      secondary to do a vm exit and hence this mm cpumask usage is safe
      here.
      
      WRT CAPI, we still end up walking linux page table with capi context
      MM. For now the pte lookup serialization sends an IPI to all CPUs in
      CPI is in use. We can further improve this by adding the CAPI
      interrupt handling CPU to task mm cpumask. That will be done in a
      later patch.
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      fa4531f7
  12. 18 Jul, 2017 2 commits
    • Michael Ellerman's avatar
      powerpc/mm: Mark __init memory no-execute when STRICT_KERNEL_RWX=y · 029d9252
      Michael Ellerman authored
      Currently even with STRICT_KERNEL_RWX we leave the __init text marked
      executable after init, which is bad.
      
      Add a hook to mark it NX (no-execute) before we free it, and implement
      it for radix and hash.
      
      Note that we use __init_end as the end address, not _einittext,
      because overlaps_kernel_text() uses __init_end, because there are
      additional executable sections other than .init.text between
      __init_begin and __init_end.
      
      Tested on radix and hash with:
      
        0:mon> p $__init_begin
        *** 400 exception occurred
      
      Fixes: 1e0fc9d1
      
       ("powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      029d9252
    • Michael Ellerman's avatar
      powerpc/mm/hash: Refactor hash__mark_rodata_ro() · fa7f9189
      Michael Ellerman authored
      
      
      Move the core logic into a helper, so we can use it for changing other
      permissions.
      
      We also change the logic to align start down, and end up. This means
      calling the function with a range will expand that range to be at
      least 1 mmu_linear_psize page in size. We need that so we can use it
      on __init_begin ...  __init_end which is not a full page in size.
      
      This should always work for _stext/__init_begin, because we align
      __init_begin to _stext + 16M in the linker script.
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reviewed-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      fa7f9189
  13. 04 Jul, 2017 1 commit
  14. 02 Jul, 2017 1 commit
  15. 28 Jun, 2017 1 commit
  16. 02 Mar, 2017 1 commit
  17. 11 May, 2016 2 commits
  18. 01 May, 2016 3 commits