1. 14 12月, 2015 2 次提交
  2. 02 12月, 2015 3 次提交
  3. 01 12月, 2015 9 次提交
  4. 26 11月, 2015 1 次提交
  5. 16 11月, 2015 1 次提交
  6. 10 11月, 2015 1 次提交
  7. 06 11月, 2015 1 次提交
    • E
      mm: mlock: add mlock flags to enable VM_LOCKONFAULT usage · b0f205c2
      Eric B Munson 提交于
      The previous patch introduced a flag that specified pages in a VMA should
      be placed on the unevictable LRU, but they should not be made present when
      the area is created.  This patch adds the ability to set this state via
      the new mlock system calls.
      
      We add MLOCK_ONFAULT for mlock2 and MCL_ONFAULT for mlockall.
      MLOCK_ONFAULT will set the VM_LOCKONFAULT modifier for VM_LOCKED.
      MCL_ONFAULT should be used as a modifier to the two other mlockall flags.
      When used with MCL_CURRENT, all current mappings will be marked with
      VM_LOCKED | VM_LOCKONFAULT.  When used with MCL_FUTURE, the mm->def_flags
      will be marked with VM_LOCKED | VM_LOCKONFAULT.  When used with both
      MCL_CURRENT and MCL_FUTURE, all current mappings and mm->def_flags will be
      marked with VM_LOCKED | VM_LOCKONFAULT.
      
      Prior to this patch, mlockall() will unconditionally clear the
      mm->def_flags any time it is called without MCL_FUTURE.  This behavior is
      maintained after adding MCL_ONFAULT.  If a call to mlockall(MCL_FUTURE) is
      followed by mlockall(MCL_CURRENT), the mm->def_flags will be cleared and
      new VMAs will be unlocked.  This remains true with or without MCL_ONFAULT
      in either mlockall() invocation.
      
      munlock() will unconditionally clear both vma flags.  munlockall()
      unconditionally clears for VMA flags on all VMAs and in the mm->def_flags
      field.
      Signed-off-by: NEric B Munson <emunson@akamai.com>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michael Kerrisk <mtk.manpages@gmail.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Shuah Khan <shuahkh@osg.samsung.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b0f205c2
  8. 28 10月, 2015 3 次提交
    • K
      powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry · e1f580e8
      Kevin Hao 提交于
      In order to workaround Erratum A-008139, we have to invalidate the
      tlb entry with tlbilx before overwriting. Due to the performance
      consideration, we don't add any memory barrier when acquire/release
      the tcd lock. This means the two load instructions for esel_next do
      have the possibility to return different value. This is definitely
      not acceptable due to the Erratum A-008139. We have two options to
      fix this issue:
        a) Add memory barrier when acquire/release tcd lock to order the
           load/store to esel_next.
        b) Just make sure to invalidate and write to the same tlb entry and
           tolerate the race that we may get the wrong value and overwrite
           the tlb entry just updated by the other thread.
      
      We observe better performance using option b. So reserve an additional
      register to save the value of the esel_next.
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      e1f580e8
    • S
      powerpc/booke: Only use VIRT_PHYS_OFFSET on booke32 · ffda09a9
      Scott Wood 提交于
      The way VIRT_PHYS_OFFSET is not correct on book3e-64, because
      it does not account for CONFIG_RELOCATABLE other than via the
      32-bit-only virt_phys_offset.
      
      book3e-64 can (and if the comment about a GCC miscompilation is still
      relevant, should) use the normal ppc64 __va/__pa.
      
      At this point, only booke-32 will use VIRT_PHYS_OFFSET, so given the
      issues with its calculation, restrict its definition to booke-32.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      ffda09a9
    • T
      powerpc/book3e: support CONFIG_RELOCATABLE · 1cb6e064
      Tiejun Chen 提交于
      book3e is different with book3s since 3s includes the exception
      vectors code in head_64.S as it relies on absolute addressing
      which is only possible within this compilation unit. So we have
      to get that label address with got.
      
      And when boot a relocated kernel, we should reset ipvr properly again
      after .relocate.
      Signed-off-by: NTiejun Chen <tiejun.chen@windriver.com>
      [scottwood: cleanup and ifdef removal]
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      1cb6e064
  9. 23 10月, 2015 1 次提交
  10. 22 10月, 2015 3 次提交
  11. 21 10月, 2015 1 次提交
    • P
      powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" · 23316316
      Paul Mackerras 提交于
      This reverts commit 9678cdaa ("Use the POWER8 Micro Partition
      Prefetch Engine in KVM HV on POWER8") because the original commit had
      multiple, partly self-cancelling bugs, that could cause occasional
      memory corruption.
      
      In fact the logmpp instruction was incorrectly using register r0 as the
      source of the buffer address and operation code, and depending on what
      was in r0, it would either do nothing or corrupt the 64k page pointed to
      by r0.
      
      The logmpp instruction encoding and the operation code definitions could
      be corrected, but then there is the problem that there is no clearly
      defined way to know when the hardware has finished writing to the
      buffer.
      
      The original commit attempted to work around this by aborting the
      write-out before starting the prefetch, but this is ineffective in the
      case where the virtual core is now executing on a different physical
      core from the one where the write-out was initiated.
      
      These problems plus advice from the hardware designers not to use the
      function (since the measured performance improvement from using the
      feature was actually mostly negative), mean that reverting the code is
      the best option.
      
      Fixes: 9678cdaa ("Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8")
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      23316316
  12. 15 10月, 2015 3 次提交
  13. 12 10月, 2015 2 次提交
  14. 09 10月, 2015 2 次提交
    • A
      powerpc: Fix _ALIGN_* errors due to type difference. · f78f7ed7
      Aneesh Kumar K.V 提交于
      This avoid errors like
      
              unsigned int usize = 1 << 30;
              int size = 1 << 30;
              unsigned long addr = 64UL << 30 ;
      
              value = _ALIGN_DOWN(addr, usize); -> 0
              value = _ALIGN_DOWN(addr, size);  -> 0x1000000000
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      f78f7ed7
    • C
      powerpc: Fix checkstop in native_hpte_clear() with lockdep · fdf880a6
      Cyril Bur 提交于
      native_hpte_clear() is called in real mode from two places:
      - Early in boot during htab initialisation if firmware assisted dump is
        active.
      - Late in the kexec path.
      
      In both contexts there is no need to disable interrupts are they are
      already disabled. Furthermore, locking around the tlbie() is only required
      for pre POWER5 hardware.
      
      On POWER5 or newer hardware concurrent tlbie()s work as expected and on pre
      POWER5 hardware concurrent tlbie()s could result in deadlock. This code
      would only be executed at crashdump time, during which all bets are off,
      concurrent tlbie()s are unlikely and taking locks is unsafe therefore the
      best course of action is to simply do nothing. Concurrent tlbie()s are not
      possible in the first case as secondary CPUs have not come up yet.
      Signed-off-by: NCyril Bur <cyrilbur@gmail.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      fdf880a6
  15. 08 10月, 2015 1 次提交
  16. 07 10月, 2015 1 次提交
    • C
      word-at-a-time.h: fix some Kbuild files · 19c22f3a
      Chris Metcalf 提交于
      arch/tile added word-at-a-time.h after the patch that added generic-y
      entries; the generic-y entry is now stale.
      
      arch/h8300 is newer than the generic-y patch for word-at-a-time.h,
      and needs a generic-y entry.
      
      arch/powerpc seems to have gotten a generic-y entry by mistake in
      the first patch; this change removes it.
      Signed-off-by: NChris Metcalf <cmetcalf@ezchip.com>
      19c22f3a
  17. 05 10月, 2015 1 次提交
    • D
      powerpc/msi: Free the bitmap if it was slab allocated · cb2d3883
      Denis Kirjanov 提交于
      During the MSI bitmap test on boot kmemleak spews the following trace:
      
      unreferenced object 0xc00000016e86c900 (size 64):
          comm "swapper/0", pid 1, jiffies 4294893173 (age 518.024s)
          hex dump (first 32 bytes):
      	00 00 01 ff 7f ff 7f 37 00 00 00 00 00 00 00 00
      	.......7........
      	ff ff ff ff ff ff ff ff 01 ff ff ff ff
      	ff ff ff
      	................
      	backtrace:
      	[<c00000000003eebc>] .zalloc_maybe_bootmem+0x3c/0x380
      	[<c000000000042d6c>] .msi_bitmap_alloc+0x3c/0xb0
      	[<c000000000a9aff8>] .msi_bitmap_selftest+0x30/0x2b4
      	[<c0000000000090f4>] .do_one_initcall+0xd4/0x270
      	[<c000000000a8e250>] .kernel_init_freeable+0x1a0/0x280
      	[<c000000000009b5c>] .kernel_init+0x1c/0x120
      	[<c000000000007fbc>] .ret_from_kernel_thread+0x58/0x9c
      
      Add a flag to msi_bitmap for tracking allocations from slab and memblock
      so we can properly free/handle memory in msi_bitmap_free().
      Signed-off-by: NDenis Kirjanov <kda@linux-powerpc.org>
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      [mpe: Reword changelog & use bitmap_from_slab in the if]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      cb2d3883
  18. 01 10月, 2015 1 次提交
  19. 25 9月, 2015 1 次提交
  20. 21 9月, 2015 1 次提交
  21. 16 9月, 2015 1 次提交
    • T
      genirq: Remove irq argument from irq flow handlers · bd0b9ac4
      Thomas Gleixner 提交于
      Most interrupt flow handlers do not use the irq argument. Those few
      which use it can retrieve the irq number from the irq descriptor.
      
      Remove the argument.
      
      Search and replace was done with coccinelle and some extra helper
      scripts around it. Thanks to Julia for her help!
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Julia Lawall <Julia.Lawall@lip6.fr>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      bd0b9ac4