27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

05 Jan, 2010

1 commit


18 May, 2009

1 commit


07 Jan, 2009

1 commit

  • While looking at reducing the amount of architecture namespace pollution
    in the generic kernel, I found that asm/irq.h is included in the vast
    majority of compilations on ARM (around 650 files.)

    Since asm/irq.h includes a sub-architecture include file on ARM, this
    causes a negative impact on the ccache's ability to re-use the build
    results from other sub-architectures, so we have a desire to reduce the
    dependencies on asm/irq.h.

    It turns out that a major cause of this is the needless include of
    linux/hardirq.h into asm-generic/local.h. The patch below removes this
    include, resulting in some 250 to 300 files (around half) of the kernel
    then omitting asm/irq.h.

    My test builds still succeed, provided two ARM files are fixed
    (arch/arm/kernel/traps.c and arch/arm/mm/fault.c) - so there may be
    negative impacts for this on other architectures.

    Note that x86 does not include asm/irq.h nor linux/hardirq.h in its
    asm/local.h, so this patch can be viewed as bringing the generic version
    into line with the x86 version.

    [kosaki.motohiro@jp.fujitsu.com: add #include to acpi/processor_idle.c]
    [adobriyan@gmail.com: fix sparc64]
    Signed-off-by: Russell King
    Signed-off-by: KOSAKI Motohiro
    Cc: Steven Rostedt
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Russell King
     

09 May, 2007

1 commit

  • This series extena and standardises local_t operations on each architecture,
    allowing a rich set of atomic operations to be done on per-cpu data with
    minimal performance impact. On architectures where there seems to be no
    difference between the SMP and UP operation (same memory barriers, same
    LOCKing), local.h simply includes asm-generic/local.h, which removes
    duplicated code from the current kernel tree.

    This patch:

    local_t: architecture independent extension

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

26 Apr, 2006

1 commit


01 Apr, 2006

1 commit

  • local_t's were defined to be unsigned. This increases confusion because
    atomic_t's are signed. The patch goes through and changes all implementations
    to use signed longs throughout.

    Also, x86-64 was using 32-bit quantities for the value passed into local_add()
    and local_sub(). Fixed.

    All (actually, both) existing users have been audited.

    (Also s/__inline__/inline/ in x86_64/local.h)

    Cc: Andi Kleen
    Cc: Benjamin LaHaise
    Cc: Kyle McMartin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

29 Mar, 2006

1 commit

  • Now that Christoph Lameter's atomic_long_t support is merged in mainline,
    might as well convert asm-generic/local.h to use it, so the same code can
    be used for both sizes of 32 and 64-bit unsigned longs.

    akpm sayeth:

    Q:

    Is there any particular reason why these routines weren't simply
    implemented with local_save/restore_flags, if they are only meant to
    guarantee atomicity to the local cpu? I'm sure on most platforms this
    would be more efficient than using an atomic...

    A:

    The whole _point_ of local_t is to avoid local_irq_disable(). It's
    designed to exploit the fact that many CPUs can do incs and decs in a way
    which is atomic wrt local interrupts, but not atomic wrt SMP.

    But this patch makes sense, because asm-generic/local.h is just a fallback
    implementation for architectures which either cannot perform these
    local-irq-atomic operations, or its maintainers haven't yet got around to
    implementing them.

    We need more work done on local_t in the 2.6.17 timeframe - they're defined as
    unsigned long, but some architectures implement them as signed long.

    Signed-off-by: Kyle McMartin
    Cc: Benjamin LaHaise
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     

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