An error occurred fetching the project authors.
  1. 24 Aug, 2004 2 commits
  2. 23 Aug, 2004 1 commit
  3. 24 Jun, 2004 1 commit
  4. 18 Jun, 2004 1 commit
    • Russell King's avatar
      [PATCH] Clean up asm/pgalloc.h include 3 · d01034ea
      Russell King authored
      This patch cleans up needless includes of asm/pgalloc.h from the arch/i386/
      subtree.  Compile tested on x86_pc SMP.
      
      [I also tried VISWS + SMP without PM doesn't build in smpboot.c,
       though I don't believe its caused by this patch.  With PM, fails
       to link complaining maxcpus is undefined.  Therefore, I presume
       VISWS + SMP is an invalid configuration.]
      
      This patch is part of a larger patch aiming towards getting the include of
      asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at
      things like mm_struct and friends.
      
      I suggest testing in -mm for a while to ensure there aren't any hidden arch
      issues.
      
      The outstanding list of files for other architectures can be found
      at http://www.arm.linux.org.uk/misc/pgalloc.txtSigned-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d01034ea
  5. 10 May, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Warn when smp_call_function() is called with interrupts disabled · 43653667
      Andrew Morton authored
      From: Keith Owens <kaos@sgi.com>
      
      Almost every architecture has a comment above smp_call_function()
      
       * You must not call this function with disabled interrupts or from a
       * hardware interrupt handler or from a bottom half handler.
      
      I have not seen any problems with calling smp_call_function() from a bottom
      half handler, but calling it with interrupts disabled can definitely
      deadlock.  This bug is hard to reproduce and even harder to debug.
      
      CPU A                               CPU B
      Disable interrupts
                                          smp_call_function()
                                          Take call_lock
                                          Send IPIs
                                          Wait for all cpus to acknowledge IPI
                                          CPU A has not responded, spin waiting
                                          for cpu A to respond, holding call_lock
      smp_call_function()
      Spin waiting for call_lock
      Deadlock                            Deadlock
      
      Change all smp_call_function() to WARN_ON(irqs_disabled()).  It should be
      BUG_ON() but some buggy code like SCSI sg will break with BUG_ON, so just
      warn for now.  Change it to BUG_ON after the buggy code has been fixed.
      43653667
  6. 15 Apr, 2004 1 commit
    • James Bottomley's avatar
      [PATCH] fix 4k irqstacks on x86 (and add voyager support) · c608aedd
      James Bottomley authored
      There's a bug in the x86 code in that it sets the boot CPU to zero.
      
      This isn't correct since some subarch's use physically indexed CPUs. 
      However, subarchs have either set the boot cpu before irq_INIT() (or
      just inherited the default zero from INIT_THREAD_INFO()), so it's safe
      to believe current_thread_info()->cpu about the boot cpu.
      c608aedd
  7. 14 Mar, 2004 1 commit
  8. 19 Jan, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Make for_each_cpu() Iterator More Friendly · 90c7f719
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Anton: breaks PPC64, as it needs cpu_possible_mask, but fix is already
      in Ameslab tree.
      
      The for_each_cpu() and for_each_online_cpu() iterators take a mask, and
      noone uses them that way (except for arch/i386/mach-voyager, which uses
      for_each_cpu(cpu_online_mask).  Make them more usable iterators, by
      dropping the "mask" arg.
      
      This requires that archs provide a cpu_possible_mask: most do, but PPC64
      doesn't, so it is broken by this patch.  The other archs use a #define to
      define it in asm/smp.h.
      
      Most places doing loops over cpus testing for cpu_online() should use
      for_each_cpu: it is synonymous at the moment, but with the CPU hotplug
      patch the difference becomes important.
      
      Followup patches will convert users.
      90c7f719
  9. 09 Nov, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] compile fix for voyager with gcc-3.3 · 9ef63c5e
      Andrew Morton authored
      From: James Bottomley <James.Bottomley@SteelEye.com>
      
      The cpu_callout_map differs from the prototype in asm-i386/smp.h by a
      volatile.  gcc-3.3 now treats this as an error, so voyager support will
      only compile with older gcc's.  The fix is to remove the spurious volatile.
      9ef63c5e
  10. 31 Aug, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] make voyager work again after the cpumask_t changes · 00bd8e91
      Andrew Morton authored
      From: James Bottomley <James.Bottomley@SteelEye.com>
      
      Most is just simple fixes; however, the needless change from atomic to
      non-atomic operations in smp_invalidate_interrupt() caused me a lot of
      pain to track down since it introduced some very subtle bugs.
      
      I've also taken phys_cpu_present_map out of smp.h.  Since it
      physid_mask_t is defined in mpspec.h anyway, and contains a duplicate
      definition, I don't believe it can hurt anything.
      00bd8e91
  11. 18 Aug, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] cpumask_t: allow more than BITS_PER_LONG CPUs · bf8cb61f
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      Contributions from:
      	Jan Dittmer <jdittmer@sfhq.hn.org>
      	Arnd Bergmann <arnd@arndb.de>
      	"Bryan O'Sullivan" <bos@serpentine.com>
      	"David S. Miller" <davem@redhat.com>
      	Badari Pulavarty <pbadari@us.ibm.com>
      	"Martin J. Bligh" <mbligh@aracnet.com>
      	Zwane Mwaikambo <zwane@linuxpower.ca>
      
      It has ben tested on x86, sparc64, x86_64, ia64 (I think), ppc and ppc64.
      
      cpumask_t enables systems with NR_CPUS > BITS_PER_LONG to utilize all their
      cpus by creating an abstract data type dedicated to representing cpu
      bitmasks, similar to fd sets from userspace, and sweeping the appropriate
      code to update callers to the access API.  The fd set-like structure is
      according to Linus' own suggestion; the macro calling convention to ambiguate
      representations with minimal code impact is my own invention.
      
      Specifically, a new set of inline functions for manipulating arbitrary-width
      bitmaps is introduced with a relatively simple implementation, in tandem with
      a new data type representing bitmaps of width NR_CPUS, cpumask_t, whose
      accessor functions are defined in terms of the bitmap manipulation inlines.
      This bitmap ADT found an additional use in i386 arch code handling sparse
      physical APIC ID's, which was convenient to use in this case as the
      accounting structure was required to be wider to accommodate the physids
      consumed by larger numbers of cpus.
      
      For the sake of simplicity and low code impact, these cpu bitmasks are passed
      primarily by value; however, an additional set of accessors along with an
      auxiliary data type with const call-by-reference semantics is provided to
      address performance concerns raised in connection with very large systems,
      such as SGI's larger models, where copying and call-by-value overhead would
      be prohibitive.  Few (if any) users of the call-by-reference API are
      immediately introduced.
      
      Also, in order to avoid calling convention overhead on architectures where
      structures are required to be passed by value, NR_CPUS <= BITS_PER_LONG is
      special-cased so that cpumask_t falls back to an unsigned long and the
      accessors perform the usual bit twiddling on unsigned longs as opposed to
      arrays thereof.  Audits were done with the structure overhead in-place,
      restoring this special-casing only afterward so as to ensure a more complete
      API conversion while undergoing the majority of its end-user exposure in -mm.
       More -mm's were shipped after its restoration to be sure that was tested,
      too.
      
      The immediate users of this functionality are Sun sparc64 systems, SGI mips64
      and ia64 systems, and IBM ia32, ppc64, and s390 systems.  Of these, only the
      ppc64 machines needing the functionality have yet to be released; all others
      have had systems requiring it for full functionality for at least 6 months,
      and in some cases, since the initial Linux port to the affected architecture.
      bf8cb61f
  12. 20 May, 2003 1 commit
  13. 19 May, 2003 2 commits
    • Ingo Molnar's avatar
      [PATCH] fix do_fork() return value · 7196d9df
      Ingo Molnar authored
      Noticed by Julie DeWandel <jdewand@redhat.com>.
      
      do_fork() needs to return the pid (or error), not the pointer to the
      resulting process structure.  The process structure may not even be
      valid any more, since do_fork() has already woken the process up (and as
      a result it might already have done its thing and gone away).
      
      Besides, doing it this way cleans up the users, which all really just
      wanted the pid or error number _anyway_.
      
      This fixes the x86 users, other architectures need to be fixed up as
      well.
      7196d9df
    • Andrew Morton's avatar
      [PATCH] [patch 4/29 voyager cpu_callout_map fix · 4fab9d40
      Andrew Morton authored
      From: Martin Bligh
      
      Change the defn of cpu_callout_map for voyager to volatile to match other
      stuff.
      4fab9d40
  14. 03 Mar, 2003 1 commit
    • Steven Cole's avatar
      [PATCH] Spelling fixes from spell-fix.pl · 5d8a45ef
      Steven Cole authored
      This patch contains the first fruits of the automatic spell checking and
      correcting scripts written by Dan Kegel and Matthias Schniedermeyer.
      Those scripts are available here: http://www.kegel.com/kerspell/
      
      This patch fixes these six words from the first five lines of
      spell-fix.txt.  280 lines remaining.
      
        accesible   -> accessible
        accesing    -> accessing
        accomodate  -> accommodate
        acommodate  -> accommodate
        Acknowlege  -> Acknowledge
        acknoledged -> acknowledged
      5d8a45ef
  15. 02 Mar, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] fix preempt-issues with smp_call_function() · a8dd6484
      Andrew Morton authored
      Patch from Thomas Schlichter <schlicht@uni-mannheim.de>
      
      Based on a patch from Dave Jones.
      
      It converts a large number of instances of:
      
      	smp_call_function(foo);
      	foo();
      
      into
      
      	on_each_cpu(foo);
      
      and in doing so fixes up the preempt-unsafeness of the first version.
      a8dd6484
  16. 25 Feb, 2003 1 commit
  17. 24 Feb, 2003 1 commit
  18. 18 Feb, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] more ia32 profiler cleanups · f5e31c2f
      Andrew Morton authored
      Make the prof_counter and prof_old_counter arrays use per-cpu data, and give
      them static scope.
      
      Also fix a signedness bug in the voyager implementation (from James)
      f5e31c2f
  19. 10 Feb, 2003 1 commit
  20. 07 Jan, 2003 1 commit
    • Martin J. Bligh's avatar
      [PATCH] nuke clustered_apic_mode and friends · 53b45352
      Martin J. Bligh authored
      OK, the grand finale ... NUMA-Q is now moved into subarch, so we can
      kill off the last vestiges - CONFIG_CLUSTERED_APIC, clustered_apic_mode,
      and smpboot.h (which only contains machine specific stuff now anyway).
      the esr_disable switch was the last bit, that goes to subarch too.
      
      If you end up with an empty smpboot.h due to patch / bitkeeper interactions,
      please remove it after this ...
      53b45352
  21. 31 Dec, 2002 1 commit
  22. 30 Dec, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] don't call console drivers on non-online CPUs · a93e679a
      Andrew Morton authored
      George Anzinger identified the following problem: when a secondary CPU is
      coming up, it calls printk() before it is "online".  It calls the console
      drivers before its per-cpu storage has been prepared.  And the vga console
      driver does a mod_timer().  This CPU's timers have not yet been initialised;
      it is not clear why this doesn't oops - George thinks it is because virtual
      address zero is still accessible at that time.
      
      I believe the right way to fix this is to change printk so that a not-online
      CPU will not call the console drivers.  Because printk should always be
      callable.  If the CPU is not online the message is buffered, so the next
      caller to printk who is online will actually display it.
      
      ia64 has been doing exactly this for ages, so we can remove the
      arch_consoles_callable() hook and just open-code the cpu_online() test in
      printk.
      
      
      
      That fixes things up for the secondary CPUs.  But this change causes a
      problem for the boot CPU: it is being marked online very late in boot, so the
      printk buffer is being displayed much later than we would like.
      
      I believe that the solution to this is to mark the boot CPU online much
      earlier.  So in this patch we call the new arch-provided function
      smp_prepare_boot_cpu() immediately after the boot CPU's per-cpu areas are set
      up.  Its mandate is to (at least) mark the boot CPU "online".
      
      The change has been reviewed by davem and rth.  No comments were received
      from the other arch maintainers.
      a93e679a
  23. 28 Dec, 2002 1 commit
  24. 28 Oct, 2002 1 commit