An error occurred fetching the project authors.
  1. 24 Feb, 2004 1 commit
    • Paul Mackerras's avatar
      [PATCH] Clean up IRQ mapping code · a9eceedc
      Paul Mackerras authored
      On the larger ppc64 machines we remap the interrupt numbers used by
      the hardware/firmware to virtual IRQ numbers < NR_IRQS.  Up until now
      we have used an array for the "real" (hardware) -> virtual IRQ number
      mapping, but with new machines coming out that will have 24-bit
      hardware IRQ numbers, this will break.  However, in fact it is only
      the XICS interrupt controller which cares about this mapping.  This
      patch moves that side of the mapping (real -> virtual) into the XICS
      code and makes it use a radix tree.
      
      On iSeries we have a similar issue, where the "real" IRQ numbers that
      we need are in fact an encoding of the bus/device/function address of
      the device.  This patch fixes iSeries to use the virt->real IRQ
      mapping, allowing us to support larger iSeries machines.  This patch
      also gets rid of the temporary hack that Stephen Rothwell submitted.
      
      On machines with OpenPIC (including the G5) the mapping is explicitly
      1-1, and that hasn't changed.  For other machines this patch cleans up
      and simplifies the code that sets up the virtual->real mapping.
      
      I have tested this code and verified that G5, pSeries and iSeries boot
      and run correctly with this patch.
      a9eceedc
  2. 23 Feb, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] ppc64 cpu spinup fixes · 576a9e87
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      1) Check for cpuids >= NR_CPUS in prom_hold_cpus: we previously
         overflowed arrays when this happened, and checking it here ensures
         that it doesn't happen elsewhere.  Still move processors to
         secondary_hold (out of OF), but we won't release them.
      
      2) smp_iSeries_message_pass and smp_xics_message_pass don't need to
         iterate if given a specific CPU: cleanup and fix.
      
      3) kick_cpu variants don't need to check cpu range (caller is screwed
         anyway if this happened): replaced with BUG_ON for now.
      
      4) smp_openpic_probe and smp_xics_probe can use cpus_weight(): it's
         faster and simpler.
      
      5) User for_each_cpu/for_each_online_cpu as appropriate.
      576a9e87
  3. 13 Feb, 2004 1 commit
    • Anton Blanchard's avatar
      [PATCH] cleanup debugger hooks · 49555a7c
      Anton Blanchard authored
      Theres still more to do here, but at least the ifdef mess is gone. No
      more checking for NULL before calling functions, that was playing with
      fire. Oh yeah and lots more deletions :)
      
      Clean up the debugger hooks, it was way too easy to screw up.
      And we did. And Linus hit it.
      
      - create CONFIG_DEBUGGER so we can enable kernel debugging options but not
        have any trace of debugger gunk.
      - remove a bunch of xmon prototypes so no one gets the urge to call them
      - Use die() instead of panic in a number of places, it gives us much better
        debug information.
      - Get rid of the ifdef madness
      49555a7c
  4. 19 Jan, 2004 2 commits
  5. 04 Sep, 2003 1 commit
  6. 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
  7. 16 Aug, 2003 1 commit
  8. 07 Jun, 2003 1 commit
  9. 25 May, 2003 2 commits
  10. 20 May, 2003 1 commit
  11. 25 Apr, 2003 1 commit
  12. 29 Mar, 2003 1 commit
  13. 25 Mar, 2003 1 commit
  14. 18 Feb, 2003 1 commit
  15. 18 Dec, 2002 1 commit
  16. 16 Dec, 2002 2 commits
  17. 08 Dec, 2002 1 commit
  18. 23 Nov, 2002 1 commit
  19. 11 Oct, 2002 1 commit
  20. 08 Oct, 2002 1 commit
  21. 18 Sep, 2002 1 commit
  22. 02 Aug, 2002 1 commit
  23. 24 Jul, 2002 1 commit
  24. 21 Jun, 2002 1 commit
  25. 24 Apr, 2002 1 commit
  26. 13 Apr, 2002 2 commits
  27. 26 Mar, 2002 1 commit
  28. 17 Mar, 2002 1 commit
  29. 12 Mar, 2002 1 commit
  30. 15 Feb, 2002 1 commit