1. 12 5月, 2014 2 次提交
    • A
      arm64: make a single hook to syscall_trace() for all syscall features · 449f81a4
      AKASHI Takahiro 提交于
      Currently syscall_trace() is called only for ptrace.
      With additional TIF_xx flags defined, it is now called in all the cases
      of audit, ftrace and seccomp in addition to ptrace.
      Acked-by: NRichard Guy Briggs <rgb@redhat.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NAKASHI Takahiro <takahiro.akashi@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      449f81a4
    • W
      arm64: debug: avoid accessing mdscr_el1 on fault paths where possible · 2a283070
      Will Deacon 提交于
      Since mdscr_el1 is part of the debug register group, it is highly likely
      to be trapped by a hypervisor to prevent virtual machines from debugging
      (buggering?) each other. Unfortunately, this absolutely destroys our
      performance, since we access the register on many of our low-level
      fault handling paths to keep track of the various debug state machines.
      
      This patch removes our dependency on mdscr_el1 in the case that debugging
      is not being used. More specifically we:
      
        - Use TIF_SINGLESTEP to indicate that a task is stepping at EL0 and
          avoid disabling step in the MDSCR when we don't need to.
          MDSCR_EL1.SS handling is moved to kernel_entry, when trapping from
          userspace.
      
        - Ensure debug exceptions are re-enabled on *all* exception entry
          paths, even the debug exception handling path (where we re-enable
          exceptions after invoking the handler). Since we can now rely on
          MDSCR_EL1.SS being cleared by the entry code, exception handlers can
          usually enable debug immediately before enabling interrupts.
      
        - Remove all debug exception unmasking from ret_to_user and
          el1_preempt, since we will never get here with debug exceptions
          masked.
      
      This results in a slight change to kernel debug behaviour, where we now
      step into interrupt handlers and data aborts from EL1 when debugging the
      kernel, which is actually a useful thing to do. A side-effect of this is
      that it *does* potentially prevent stepping off {break,watch}points when
      there is a high-frequency interrupt source (e.g. a timer), so a debugger
      would need to use either breakpoints or manually disable interrupts to
      get around this issue.
      
      With this patch applied, guest performance is restored under KVM when
      debug register accesses are trapped (and we get a measurable performance
      increase on the host on Cortex-A57 too).
      
      Cc: Ian Campbell <ian.campbell@citrix.com>
      Tested-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      2a283070
  2. 10 5月, 2014 5 次提交
  3. 09 5月, 2014 7 次提交
  4. 25 4月, 2014 2 次提交
    • L
      arm64: initialize spinlock for init_mm's context · 8f071203
      Leo Yan 提交于
      ARM64 has defined the spinlock for init_mm's context, so need initialize
      the spinlock structure; otherwise during the suspend flow it will dump
      the info for spinlock's bad magic warning as below:
      
      [   39.084394] Disabling non-boot CPUs ...
      [   39.092871] BUG: spinlock bad magic on CPU#1, swapper/1/0
      [   39.092896]  lock: init_mm+0x338/0x3e0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
      [   39.092907] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G           O 3.10.33 #125
      [   39.092912] Call trace:
      [   39.092927] [<ffffffc000087e64>] dump_backtrace+0x0/0x16c
      [   39.092934] [<ffffffc000087fe0>] show_stack+0x10/0x1c
      [   39.092947] [<ffffffc000765334>] dump_stack+0x1c/0x28
      [   39.092953] [<ffffffc0007653b8>] spin_dump+0x78/0x88
      [   39.092960] [<ffffffc0007653ec>] spin_bug+0x24/0x34
      [   39.092971] [<ffffffc000300a28>] do_raw_spin_lock+0x98/0x17c
      [   39.092979] [<ffffffc00076cf08>] _raw_spin_lock_irqsave+0x4c/0x60
      [   39.092990] [<ffffffc000094044>] set_mm_context+0x1c/0x6c
      [   39.092996] [<ffffffc0000941c8>] __new_context+0x94/0x10c
      [   39.093007] [<ffffffc0000d63d4>] idle_task_exit+0x104/0x1b0
      [   39.093014] [<ffffffc00008d91c>] cpu_die+0x14/0x74
      [   39.093021] [<ffffffc000084f74>] arch_cpu_idle_dead+0x8/0x14
      [   39.093030] [<ffffffc0000e7f18>] cpu_startup_entry+0x1ec/0x258
      [   39.093036] [<ffffffc00008d810>] secondary_start_kernel+0x114/0x124
      Signed-off-by: NLeo Yan <leoy@marvell.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      8f071203
    • S
      arm64: mm: Add THP TLB entries to general mmu_gather · 2eb835e0
      Steve Capper 提交于
      When arm64 moved over to the core mmu_gather, it lost the logic to
      flush THP TLB entries (tlb_remove_pmd_tlb_entry was removed and the
      core implementation only signals that the mmu_gather needs a flush).
      
      This patch ensures that tlb_add_flush is called for THP TLB entries.
      Signed-off-by: NSteve Capper <steve.capper@linaro.org>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      2eb835e0
  5. 23 4月, 2014 2 次提交
  6. 08 4月, 2014 2 次提交
  7. 05 4月, 2014 1 次提交
  8. 03 4月, 2014 1 次提交
  9. 24 3月, 2014 1 次提交
    • C
      arm64: Remove pgprot_dmacoherent() · 196adf2f
      Catalin Marinas 提交于
      Since this macro is identical to pgprot_writecombine() and is only used
      in a single place, remove it completely to avoid confusion. On ARMv7+
      processors, the coherent DMA mapping must be Normal NonCacheable (a.k.a.
      writecombine) to avoid mismatched hardware attribute aliases (with the
      kernel linear mapping as Normal Cacheable).
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      196adf2f
  10. 21 3月, 2014 1 次提交
  11. 15 3月, 2014 3 次提交
  12. 13 3月, 2014 5 次提交
  13. 10 3月, 2014 1 次提交
  14. 04 3月, 2014 4 次提交
  15. 03 3月, 2014 3 次提交