1. 07 10月, 2015 1 次提交
    • W
      arm64: mm: rewrite ASID allocator and MM context-switching code · 5aec715d
      Will Deacon 提交于
      Our current switch_mm implementation suffers from a number of problems:
      
        (1) The ASID allocator relies on IPIs to synchronise the CPUs on a
            rollover event
      
        (2) Because of (1), we cannot allocate ASIDs with interrupts disabled
            and therefore make use of a TIF_SWITCH_MM flag to postpone the
            actual switch to finish_arch_post_lock_switch
      
        (3) We run context switch with a reserved (invalid) TTBR0 value, even
            though the ASID and pgd are updated atomically
      
        (4) We take a global spinlock (cpu_asid_lock) during context-switch
      
        (5) We use h/w broadcast TLB operations when they are not required
            (e.g. in flush_context)
      
      This patch addresses these problems by rewriting the ASID algorithm to
      match the bitmap-based arch/arm/ implementation more closely. This in
      turn allows us to remove much of the complications surrounding switch_mm,
      including the ugly thread flag.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      5aec715d
  2. 27 7月, 2015 1 次提交
  3. 02 6月, 2015 1 次提交
  4. 13 1月, 2015 1 次提交
  5. 12 1月, 2015 1 次提交
  6. 01 5月, 2014 1 次提交
  7. 25 4月, 2014 1 次提交
    • 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
  8. 08 4月, 2014 1 次提交
  9. 23 1月, 2013 1 次提交
    • C
      arm64: Add simple earlyprintk support · 2475ff9d
      Catalin Marinas 提交于
      This patch adds support for "earlyprintk=" parameter on the kernel
      command line. The format is:
      
        earlyprintk=<name>[,<addr>][,<options>]
      
      where <name> is the name of the (UART) device, e.g. "pl011", <addr> is
      the I/O address. The <options> aren't currently used.
      
      The mapping of the earlyprintk device is done very early during kernel
      boot and there are restrictions on which functions it can call. A
      special early_io_map() function is added which creates the mapping from
      the pre-defined EARLY_IOBASE to the device I/O address passed via the
      kernel parameter. The pgd entry corresponding to EARLY_IOBASE is
      pre-populated in head.S during kernel boot.
      
      Only PL011 is currently supported and it is assumed that the interface
      is already initialised by the boot loader before the kernel is started.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      2475ff9d
  10. 17 9月, 2012 2 次提交
  11. 18 7月, 2007 1 次提交
  12. 19 6月, 2006 1 次提交
  13. 10 1月, 2006 2 次提交
  14. 16 11月, 2005 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4