1. 16 2月, 2013 7 次提交
    • V
      ARC: MMU Exception Handling · cc562d2e
      Vineet Gupta 提交于
      * MMU I-TLB / D-TLB Miss Exceptions
        - Fast Path TLB Refill Handler
        - slowpath TLB creation via do_page_fault() -> update_mmu_cache()
      * Duplicate PD Exception Handler
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      cc562d2e
    • V
      ARC: MMU Context Management · f1f3347d
      Vineet Gupta 提交于
      ARC700 MMU provides for tagging TLB entries with a 8-bit ASID to avoid
      having to flush the TLB every task switch.
      
      It also allows for a quick way to invalidate all the TLB entries for
      task useful for:
      * COW sementics during fork()
      * task exit()ing
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      f1f3347d
    • V
      ARC: Page Table Management · 5dda4dc5
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      5dda4dc5
    • V
      ARC: Cache Flush Management · 95d6976d
      Vineet Gupta 提交于
      * ARC700 has VIPT L1 Caches
      * Caches don't snoop and are not coherent
      * Given the PAGE_SIZE and Cache associativity, we don't support aliasing
        D$ configurations (yet), but do allow aliasing I$ configs
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      95d6976d
    • V
      ARC: [Review] Prevent incorrect syscall restarts · 55bb9480
      Vineet Gupta 提交于
      Per Al Viro's "signals for dummies" https://lkml.org/lkml/2012/12/6/366
      there are 3 golden rules for (not) restarting syscalls:
      
      "	What we need to guarantee is
      * restarts do not happen on signals caught in interrupts or exceptions
      * restarts do not happen on signals caught in sigreturn()
      * restart should happen only once, even if we get through do_signal()
        many times."
      
      ARC Port already handled #1, this patch fixes #2 and #3.
      
      We use the additional state in pt_regs->orig_r8 to ckh if restarting
      has already been done once.
      
      Thanks to Al Viro for spotting this.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      55bb9480
    • V
      ARC: [Review] Preparing to fix incorrect syscall restarts due to signals · 5c39c0ab
      Vineet Gupta 提交于
      To avoid multiple syscall restarts (multiple signals) or no restart at
      all (sigreturn), we need just an extra bit of state "literally 1 bit" in
      struct pt_regs. orig_r8 is the best place to do this, however given the
      way it is encoded currently, we can't add anything simplistically.
      
      Current orig_r8:
      * syscalls   -> 1 to NR_SYSCALLS
      * Exceptions -> NR_SYSCALLS + 1
      * Break-point-> NR_SYSCALLS + 2
      
      In new scheme it is a bit-field
      * lower short word contains the  exact event type (and a new bit to represent
         restart semantics : if syscall was already / can't be restarted)
      * upper short word optionally containing the syscall num - needed by
        likes of tracehooks etc
      
      This patch only changes how orig_r8 is organised and nothing should
      change behaviourily.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      5c39c0ab
    • V
      ARC: Signal handling · c3581039
      Vineet Gupta 提交于
      Includes following fixes courtesy review by Al-Viro
      
      * Tracer poke to Callee-regs were lost
      
        Before going off into do_signal( ) we save the user-mode callee regs
        (as they are not saved by default as part of pt_regs). This is to make
        sure that that a Tracer (if tracing related signal) is able to do likes
        of PEEKUSR(callee-reg).
      
        However in return path we were simply discarding the user-mode callee
        regs, which would break a POKEUSR(callee-reg) from a tracer.
      
      * Issue related to multiple syscall restarts are addressed in next patch
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Acked-by: NJonas Bonn <jonas@southpole.se>
      c3581039
  2. 11 2月, 2013 15 次提交
  3. 28 1月, 2013 1 次提交