1. 01 8月, 2016 4 次提交
  2. 05 3月, 2016 1 次提交
  3. 22 2月, 2016 2 次提交
  4. 19 6月, 2015 1 次提交
    • S
      powerpc/tm: Abort syscalls in active transactions · b4b56f9e
      Sam bobroff 提交于
      This patch changes the syscall handler to doom (tabort) active
      transactions when a syscall is made and return very early without
      performing the syscall and keeping side effects to a minimum (no CPU
      accounting or system call tracing is performed). Also included is a
      new HWCAP2 bit, PPC_FEATURE2_HTM_NOSC, to indicate this
      behaviour to userspace.
      
      Currently, the system call instruction automatically suspends an
      active transaction which causes side effects to persist when an active
      transaction fails.
      
      This does change the kernel's behaviour, but in a way that was
      documented as unsupported.  It doesn't reduce functionality as
      syscalls will still be performed after tsuspend; it just requires that
      the transaction be explicitly suspended.  It also provides a
      consistent interface and makes the behaviour of user code
      substantially the same across powerpc and platforms that do not
      support suspended transactions (e.g. x86 and s390).
      
      Performance measurements using
      http://ozlabs.org/~anton/junkcode/null_syscall.c indicate the cost of
      a normal (non-aborted) system call increases by about 0.25%.
      Signed-off-by: NSam Bobroff <sam.bobroff@au1.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      b4b56f9e
  5. 03 6月, 2015 1 次提交
    • L
      powerpc/8xx: Implementation of PAGE_EXEC · 5b2753fc
      LEROY Christophe 提交于
      This patch implements PAGE_EXEC capability on the 8xx.
      
      All pages PP exec bits are set to 000, which means Execute for
      Supervisor and no Execute for User.
      Then we use the APG to say whether accesses are according to Page
      rules, "all Supervisor" rules (Exec for all) and
      "all User" rules (Exec for noone)
      
      Therefore, we define 4 APG groups. msb is _PAGE_EXEC,
      lsb is _PAGE_USER. MI_AP is initialised as follows:
      GP0 (00) => Not User, no exec => 11 (all accesses performed as user)
      GP1 (01) => User but no exec => 11 (all accesses performed as user)
      GP2 (10) => Not User, exec => 01 (rights according to page definition)
      GP3 (11) => User, exec => 00 (all accesses performed as supervisor)
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      [scottwood: comments: s/exec/data/ on data side, and s/pages/pages'/]
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      5b2753fc
  6. 17 3月, 2015 1 次提交
  7. 23 1月, 2015 1 次提交
  8. 10 11月, 2014 2 次提交
  9. 13 8月, 2014 1 次提交
  10. 30 7月, 2014 1 次提交
    • A
      powerpc/e6500: Add support for hardware threads · e16c8765
      Andy Fleming 提交于
      The general idea is that each core will release all of its
      threads into the secondary thread startup code, which will
      eventually wait in the secondary core holding area, for the
      appropriate bit in the PACA to be set. The kick_cpu function
      pointer will set that bit in the PACA, and thus "release"
      the core/thread to boot. We also need to do a few things that
      U-Boot normally does for CPUs (like enable branch prediction).
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      [scottwood@freescale.com: various changes, including only enabling
       threads if Linux wants to kick them]
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      e16c8765
  11. 28 7月, 2014 5 次提交
  12. 22 7月, 2014 1 次提交
    • J
      powerpc: Disable doorbells on Power8 DD1.x · bd6ba351
      Joel Stanley 提交于
      These processors do not currently support doorbell IPIs, so remove them
      from the feature list if we are at DD 1.xx for the 0x004d part.
      
      This fixes a regression caused by d4e58e59 (powerpc/powernv: Enable
      POWER8 doorbell IPIs). With that patch the kernel would hang at boot
      when calling smp_call_function_many, as the doorbell would not be
      received by the target CPUs:
      
        .smp_call_function_many+0x2bc/0x3c0 (unreliable)
        .on_each_cpu_mask+0x30/0x100
        .cpuidle_register_driver+0x158/0x1a0
        .cpuidle_register+0x2c/0x110
        .powernv_processor_idle_init+0x23c/0x2c0
        .do_one_initcall+0xd4/0x260
        .kernel_init_freeable+0x25c/0x33c
        .kernel_init+0x1c/0x120
        .ret_from_kernel_thread+0x58/0x7c
      
      Fixes: d4e58e59 (powerpc/powernv: Enable POWER8 doorbell IPIs)
      Signed-off-by: NJoel Stanley <joel@jms.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      bd6ba351
  13. 24 3月, 2014 1 次提交
  14. 05 12月, 2013 2 次提交
  15. 21 8月, 2013 1 次提交
    • S
      powerpc/fsl-booke: Work around erratum A-006958 · d52459ca
      Scott Wood 提交于
      Erratum A-006598 says that 64-bit mftb is not atomic -- it's subject
      to a similar race condition as doing mftbu/mftbl on 32-bit.  The lower
      half of timebase is updated before the upper half; thus, we can share
      the workaround for a similar bug on Cell.  This workaround involves
      looping if the lower half of timebase is zero, thus avoiding the need
      for a scratch register (other than CR0).  This workaround must be
      avoided when the timebase is frozen, such as during the timebase sync
      code.
      
      This deals with kernel and vdso accesses, but other userspace accesses
      will of course need to be fixed elsewhere.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      d52459ca
  16. 10 6月, 2013 1 次提交
  17. 06 5月, 2013 1 次提交
  18. 02 5月, 2013 1 次提交
  19. 26 4月, 2013 1 次提交
  20. 13 3月, 2013 1 次提交
  21. 15 2月, 2013 2 次提交
  22. 08 2月, 2013 1 次提交
  23. 10 1月, 2013 5 次提交
  24. 15 11月, 2012 1 次提交
  25. 09 10月, 2012 1 次提交