[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1205927772-31401-1-git-send-email-jens.axboe@oracle.com>
Date: Wed, 19 Mar 2008 12:56:07 +0100
From: Jens Axboe <jens.axboe@...cle.com>
To: linux-kernel@...r.kernel.org
Cc: npiggin@...e.de, paulus@...ba.org, tglx@...utronix.de,
mingo@...hat.com, tony.luck@...el.com
Subject: [PATCH 0/5] Generic smp_call_function(), improvements, and smp_call_function_single()
Hi,
While working on the IO CPU affinity bits, I had to convert some more
archs to support smp_call_function_single(). Nicks original patch
for x86-64 also included improvements for smp_call_function(), so
it isn't serialized by call_lock anymore (but still hits call_lock
on every call). I've made further improvements and changes upon that
while converting x86, going further and updating IA64 and PPC made me
realize that we have a lot of shared code for the same functionality.
So I came up with kernel/smp.c that basically just holds the new
and abstracted code for issuing smp_call_function() and
smp_call_function_single() along with the helpers and interrupt
handlers associated. Perhaps a better place would be lib/smp.c, I'm
open to suggestions.
Even with half of this being new functionality, the diffstat still looks
pretty nice:
arch/ia64/kernel/smp.c | 171 ++---------
arch/powerpc/kernel/smp.c | 223 +-------------
arch/powerpc/platforms/cell/interrupt.c | 1
arch/powerpc/platforms/ps3/smp.c | 7
arch/powerpc/platforms/pseries/xics.c | 6
arch/powerpc/sysdev/mpic.c | 2
arch/x86/kernel/entry_64.S | 3
arch/x86/kernel/i8259_64.c | 1
arch/x86/kernel/smp_32.c | 165 +++-------
arch/x86/kernel/smp_64.c | 175 ++---------
arch/x86/kernel/smpboot_32.c | 4
arch/x86/kernel/smpcommon_32.c | 34 --
include/asm-powerpc/smp.h | 5
include/asm-x86/hw_irq_32.h | 1
include/asm-x86/hw_irq_64.h | 4
include/asm-x86/mach-default/entry_arch.h | 1
include/asm-x86/mach-default/irq_vectors.h | 1
include/linux/smp.h | 30 +
kernel/Makefile | 2
kernel/smp.c | 316 +++++++++++++++++++++
20 files changed, 533 insertions(+), 619 deletions(-)
When/if more archs are converted, it'll of course look even better.
Comments? I've verified that this builts and boots on x86, x86-64
and powerpc. IA64 may still need a one-liner change, I don't have
access to that platform anymore so I can't verify that myself. It
does build, however :-)
The patch series is also available in the 'generic-ipi' branch from
git://git.kernel.dk/linux-2.6-block.git
and the 'io-cpu-affinity' branch is directly based on this.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists