03 Aug, 2011

3 commits


22 Apr, 2011

1 commit


18 Aug, 2010

1 commit

  • Basically tip-off the powerpc code, use a 64-bit type and atomic64_t
    interfaces for the implementation.

    This gets us off of the by-hand asm code I wrote, which frankly I
    think probably ruins I-cache hit rates.

    The idea was the keep the call chains less deep, but anything taking
    the rw-semaphores probably is also calling other stuff and therefore
    already has allocated a stack-frame. So no real stack frame savings
    ever.

    Ben H. has posted patches to make powerpc use 64-bit too and with some
    abstractions we can probably use a shared header file somewhere.

    With suggestions from Sam Ravnborg.

    Signed-off-by: David S. Miller

    David S. Miller
     

11 Dec, 2009

1 commit


18 Jan, 2009

1 commit

  • Previously PeeCeeI.o was a library but it
    was always pulled in due to insw and friends being exported
    (at least for a modular kernel).

    But this resulted in modpost failures if there where no in-kernel
    users because then insw & friends were not linked in.

    Fix this by including PeeCeeI.o in the kernel unconditionally.

    The only drawback for this solution is that a nonmodular kernel
    will always include insw & friends no matter if they are in use or not.

    Reported-by: Meelis Roos
    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

09 Jan, 2009

1 commit

  • …sembler in lib/ to this file.

    Remove the duplicate entries from kernel/sparc_ksyms_*.c

    The rationale behind this is that the EXPORT_SYMBOL() should be close to
    their definition and we cannot add designate a symbol to be exported in
    assembler so at least put it in a file in the same directory.

    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

    Additions by Julian Calaby:
    * Rebased over sparc-2.6.git HEAD

    Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Sam Ravnborg
     

09 Dec, 2008

2 commits


05 Dec, 2008

2 commits

  • o Renamed files in sparc64 to _64.S when identical
    to sparc32 files.
    o iomap.c were equal for sparc32 and sparc64
    o adjusted sparc/Makefile now we have only one lib/

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Identical named files renamed to _32.S
    Refactored Makefile to prepare for unification.

    Linking order was altered slightly - but this is a lib.a file so
    it should not matter.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

20 May, 2008

1 commit


27 Aug, 2007

1 commit


18 Dec, 2006

1 commit


26 Jun, 2006

1 commit


11 Sep, 2005

1 commit

  • This patch (written by me and also containing many suggestions of Arjan van
    de Ven) does a major cleanup of the spinlock code. It does the following
    things:

    - consolidates and enhances the spinlock/rwlock debugging code

    - simplifies the asm/spinlock.h files

    - encapsulates the raw spinlock type and moves generic spinlock
    features (such as ->break_lock) into the generic code.

    - cleans up the spinlock code hierarchy to get rid of the spaghetti.

    Most notably there's now only a single variant of the debugging code,
    located in lib/spinlock_debug.c. (previously we had one SMP debugging
    variant per architecture, plus a separate generic one for UP builds)

    Also, i've enhanced the rwlock debugging facility, it will now track
    write-owners. There is new spinlock-owner/CPU-tracking on SMP builds too.
    All locks have lockup detection now, which will work for both soft and hard
    spin/rwlock lockups.

    The arch-level include files now only contain the minimally necessary
    subset of the spinlock code - all the rest that can be generalized now
    lives in the generic headers:

    include/asm-i386/spinlock_types.h | 16
    include/asm-x86_64/spinlock_types.h | 16

    I have also split up the various spinlock variants into separate files,
    making it easier to see which does what. The new layout is:

    SMP | UP
    ----------------------------|-----------------------------------
    asm/spinlock_types_smp.h | linux/spinlock_types_up.h
    linux/spinlock_types.h | linux/spinlock_types.h
    asm/spinlock_smp.h | linux/spinlock_up.h
    linux/spinlock_api_smp.h | linux/spinlock_api_up.h
    linux/spinlock.h | linux/spinlock.h

    /*
    * here's the role of the various spinlock/rwlock related include files:
    *
    * on SMP builds:
    *
    * asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the
    * initializers
    *
    * linux/spinlock_types.h:
    * defines the generic type and initializers
    *
    * asm/spinlock.h: contains the __raw_spin_*()/etc. lowlevel
    * implementations, mostly inline assembly code
    *
    * (also included on UP-debug builds:)
    *
    * linux/spinlock_api_smp.h:
    * contains the prototypes for the _spin_*() APIs.
    *
    * linux/spinlock.h: builds the final spin_*() APIs.
    *
    * on UP builds:
    *
    * linux/spinlock_type_up.h:
    * contains the generic, simplified UP spinlock type.
    * (which is an empty structure on non-debug builds)
    *
    * linux/spinlock_types.h:
    * defines the generic type and initializers
    *
    * linux/spinlock_up.h:
    * contains the __raw_spin_*()/etc. version of UP
    * builds. (which are NOPs on non-debug, non-preempt
    * builds)
    *
    * (included on UP-non-debug builds:)
    *
    * linux/spinlock_api_up.h:
    * builds the _spin_*() APIs.
    *
    * linux/spinlock.h: builds the final spin_*() APIs.
    */

    All SMP and UP architectures are converted by this patch.

    arm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via
    crosscompilers. m32r, mips, sh, sparc, have not been tested yet, but should
    be mostly fine.

    From: Grant Grundler

    Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).
    Builds 32-bit SMP kernel (not booted or tested). I did not try to build
    non-SMP kernels. That should be trivial to fix up later if necessary.

    I converted bit ops atomic_hash lock to raw_spinlock_t. Doing so avoids
    some ugly nesting of linux/*.h and asm/*.h files. Those particular locks
    are well tested and contained entirely inside arch specific code. I do NOT
    expect any new issues to arise with them.

    If someone does ever need to use debug/metrics with them, then they will
    need to unravel this hairball between spinlocks, atomic ops, and bit ops
    that exist only because parisc has exactly one atomic instruction: LDCW
    (load and clear word).

    From: "Luck, Tony"

    ia64 fix

    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Grant Grundler
    Cc: Matthew Wilcox
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Mikael Pettersson
    Signed-off-by: Benoit Boissinot
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds