1. 17 5月, 2011 3 次提交
    • K
      sparc: convert old cpumask API into new one · fb1fece5
      KOSAKI Motohiro 提交于
      Adapt new API. Almost change is trivial, most important change are to
      remove following like =operator.
      
       cpumask_t cpu_mask = *mm_cpumask(mm);
       cpus_allowed = current->cpus_allowed;
      
      Because cpumask_var_t is =operator unsafe. These usage might prevent
      kernel core improvement.
      
      No functional change.
      Signed-off-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fb1fece5
    • D
      sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines · ecbc42b7
      Daniel Hellstrom 提交于
      Implement the three IPIs (resched, single and cpu-mask) generation
      and interrupt handler catch. The sun4m has 15 soft-IRQs and three
      of them is used with this patch, the three IPIs was previously
      implemented with the cross-call IRQ15 which does not work with
      locking routines such as spinlocks because IRQ15 is NMI, it may
      cause deadlock.
      
      The IRQ trap handler code assumes (in the same spritit as the old
      it seems) that hard interrupts will be generated until handled
      (level), when a IRQ happens the IRQ pending register is checked
      for pending soft-IRQs. When both hard and soft IRQ happens at the
      same time only soft-IRQs are handled.
      
      The old code implemented a soft-IRQ traphandler at IRQ14 which
      called smp_reschedule_irq which in turn called set_need_resched.
      It seems to be an old relic and is replaced with the interrupt
      traphander exit code RESTORE_ALL, it calls schedule() when
      appropriate.
      Signed-off-by: NDaniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ecbc42b7
    • D
      sparc32: implement SMP IPIs using the generic functions · d6d04819
      Daniel Hellstrom 提交于
      The current sparc32 SMP IPI generation is implemented the
      cross call function. The cross call function uses IRQ15 the
      NMI, this is has the effect that IPIs will interrupt IRQ
      critical areas and hang the system. Typically on/after
      spin_lock_irqsave calls can be aborted.
      
      The cross call functionality must still exist to flush
      cache/TLBS.
      
      This patch provides CPU models a custom way to implement
      generation of IPIs on the generic code's request. The
      typical approach is to generate an IRQ for each IPI case.
      
      After this patch each sparc32 SMP CPU model needs to
      implement IPIs in order to function properly.
      Signed-off-by: NDaniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d6d04819
  2. 22 4月, 2011 2 次提交
    • D
      sparc32: always define boot_cpu_id · 5fcafb7a
      Daniel Hellstrom 提交于
      Define boot_cpu_id in single-processor kernels as well. This is
      to support architectures which can boot on other than CPU0.
      
      Sam Ravnborg has written the cleanup parts by extracting
      boot_cpu_id from smp_32.c into setup_32.c and cleaned up
      sun4d_irq.c.
      
      boot_cpu_id was initialized before BSS was cleared in
      sun4c_continue_boot, instead boot_cpu_id is set to 0xff to
      avoid BSS. If boot_cpu_id is untouched (0xff) by bootup code
      it will be overwritten to 0. boot_cpu_id4 is automatically
      calculated in common code.
      Signed-off-by: NDaniel Hellstrom <daniel@gaisler.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fcafb7a
    • S
      sparc32: fix sparcstation 5 boot · f486b3dc
      Sam Ravnborg 提交于
      The sparcstation 5 I have available has no MID property for the CPU.
      This resulted in a panic when booting a SMP kernel on this box.
      
      The assigned field in cpu_data is never used, so if we fail
      to read the MID property then inform user and continue booting.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f486b3dc
  3. 14 4月, 2011 1 次提交
  4. 02 11月, 2009 1 次提交
  5. 16 3月, 2009 3 次提交
  6. 05 12月, 2008 1 次提交
    • S
      sparc: prepare kernel/ for unification · d670bd4f
      Sam Ravnborg 提交于
      o sparc32 files with identical names to sparc64 renamed to <name>_32.S
      o introduced a few Kconfig helpers to simplify Makefile logic
      o refactored Makefile to prepare for unification
        - use obj-$(CONFIG_SPARC32) for sparc32 specific files
        - use <name>_$(BITS) for files where sparc64 has a _64 variant
        - sparc64 directly include a few files where sparc32 builds them,
          refer to these files directly (no BITS)
        - sneaked in -Werror as used by sparc64
      o modified sparc/Makefile to use the new names for head/init_task
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d670bd4f
  7. 01 12月, 2008 1 次提交
  8. 18 7月, 2008 1 次提交
    • A
      sparc/kernel/: possible cleanups · c61c65cd
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make the following needlessly global code static:
        - apc.c: apc_swift_idle()
        - ebus.c: ebus_blacklist_irq()
        - ebus.c: fill_ebus_child()
        - ebus.c: fill_ebus_device()
        - entry.S: syscall_is_too_hard
        - etra: tsetup_sun4c_stackchk
        - head.S: cputyp
        - head.S: prom_vector_p
        - idprom.c: Sun_Machines[]
        - ioport.c: _sparc_find_resource()
        - ioport.c: create_proc_read_entry()
        - irq.c: struct sparc_irq[]
        - rtrap.S: sun4c_rett_stackchk
        - setup.c: prom_sync_me()
        - setup.c: boot_flags
        - sun4c_irq.c: sun4c_sbint_to_irq()
        - sun4d_irq.c: sbus_tid[]
        - sun4d_irq.c: struct sbus_actions
        - sun4d_irq.c: sun4d_sbint_to_irq()
        - sun4m_irq.c: sun4m_sbint_to_irq()
        - sun4m_irq.c: sun4m_get_irqmask()
        - sun4m_irq.c: sun4m_timers
        - sun4m_smp.c: smp4m_cross_call()
        - sun4m_smp.c: smp4m_blackbox_id()
        - sun4m_smp.c: smp4m_blackbox_current()
        - time.c: sp_clock_typ
        - time.c: sbus_time_init()
        - traps.c: instruction_dump()
        - wof.S: spwin_sun4c_stackchk
        - wuf.S: sun4c_fwin_stackchk
      - #if 0 the following unused code:
        - process.c: sparc_backtrace_lock
        - process.c: __show_backtrace()
        - process.c: show_backtrace()
        - process.c: smp_show_backtrace_all_cpus()
      - remove the following unused code:
        - entry.S: __handle_exception
        - smp.c: smp_num_cpus
        - smp.c: smp_activated
        - smp.c: __cpu_number_map[]
        - smp.c: __cpu_logical_map[]
        - smp.c: bitops_spinlock
        - traps.c: trap_curbuf
        - traps.c: trapbuf[]
        - traps.c: linux_smp_still_initting
        - traps.c: thiscpus_tbr
        - traps.c: thiscpus_mid
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c61c65cd
  9. 22 7月, 2007 1 次提交
  10. 10 7月, 2007 1 次提交
    • I
      sched: zap the migration init / cache-hot balancing code · 0437e109
      Ingo Molnar 提交于
      the SMP load-balancer uses the boot-time migration-cost estimation
      code to attempt to improve the quality of balancing. The reason for
      this code is that the discrete priority queues do not preserve
      the order of scheduling accurately, so the load-balancer skips
      tasks that were running on a CPU 'recently'.
      
      this code is fundamental fragile: the boot-time migration cost detector
      doesnt really work on systems that had large L3 caches, it caused boot
      delays on large systems and the whole cache-hot concept made the
      balancing code pretty undeterministic as well.
      
      (and hey, i wrote most of it, so i can say it out loud that it sucks ;-)
      
      under CFS the same purpose of cache affinity can be achieved without
      any special cache-hot special-case: tasks are sorted in the 'timeline'
      tree and the SMP balancer picks tasks from the left side of the
      tree, thus the most cache-cold task is balanced automatically.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0437e109
  11. 09 5月, 2007 1 次提交
  12. 02 2月, 2007 1 次提交
  13. 27 8月, 2006 1 次提交
  14. 22 7月, 2006 1 次提交
  15. 20 6月, 2006 2 次提交
  16. 11 6月, 2006 1 次提交
  17. 11 4月, 2006 1 次提交
  18. 24 3月, 2006 1 次提交
    • B
      [SPARC]: Try to start getting SMP back into shape. · a54123e2
      Bob Breuer 提交于
      Todo items:
       - IRQ_INPROGRESS flag - use sparc64 irq buckets, or generic irq_desc?
       - sun4d
       - re-indent large chunks of sun4m_smp.c
       - some places assume sequential cpu numbering (i.e. 0,1 instead of 0,2)
      
      Last I checked (with 2.6.14), random programs segfault with dual
      HyperSPARC.  And with SuperSPARC II's, it seems stable but will
      eventually die from a write lock error (wrong lock owner or something).
      
      I haven't tried the HyperSPARC + highmem combination recently, so that
      may still be a problem.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a54123e2
  19. 23 3月, 2006 1 次提交
    • A
      [PATCH] more for_each_cpu() conversions · 394e3902
      Andrew Morton 提交于
      When we stop allocating percpu memory for not-possible CPUs we must not touch
      the percpu data for not-possible CPUs at all.  The correct way of doing this
      is to test cpu_possible() or to use for_each_cpu().
      
      This patch is a kernel-wide sweep of all instances of NR_CPUS.  I found very
      few instances of this bug, if any.  But the patch converts lots of open-coded
      test to use the preferred helper macros.
      
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Acked-by: NKyle McMartin <kyle@parisc-linux.org>
      Cc: Anton Blanchard <anton@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Christian Zankel <chris@zankel.net>
      Cc: Philippe Elie <phil.el@wanadoo.fr>
      Cc: Nathan Scott <nathans@sgi.com>
      Cc: Jens Axboe <axboe@suse.de>
      Cc: Eric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      394e3902
  20. 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