[2.5][0/15] smp_call_function_on_cpu w/ removal of unused parameter

[2.5][0/15] smp_call_function_on_cpu w/ removal of unused parameter

Post by Zwane Mwaikamb » Mon, 10 Feb 2003 14:10:10



The following patches introduce smp_call_function_on_cpu which
provides a facility for sending IPIs to a group or single cpu encapsulated
within a bitmask, this function could be used trigger remote cpus to
modify percpu data in order to maintain local modification mandates for
lockless algorithms, although perhaps not in a real hotpath due to
contention for the call_lock and dependency on IPI performance on a
specific architecture.

At present there are a number of arch specific functions which achieve
the same effect, the name was lifted from Alpha. As per Manfred's request
i have also taken the liberty of removing the nonatomic/retry parameter
from smp_call_function since it's used as 'nonatomic' on a number of
architectures and used as 'retry' on others whilst not actually doing much
on a majority of said architectures.

The patches have been acked by some arch maintainers with no contest
otherwise when i originally posted. If a particular arch maintainer notes
breakage in my implementation please point it out and i'll do the grunt
work.

Thanks,
        Zwane

 arch/alpha/kernel/core_marvel.c         |    1
 arch/alpha/kernel/smp.c                 |   67 ++++++----------------
 arch/i386/kernel/cpu/mcheck/non-fatal.c |    2
 arch/i386/kernel/cpu/mtrr/main.c        |    2
 arch/i386/kernel/cpuid.c                |    2
 arch/i386/kernel/io_apic.c              |    4 -
 arch/i386/kernel/ldt.c                  |    2
 arch/i386/kernel/microcode.c            |    2
 arch/i386/kernel/msr.c                  |    4 -
 arch/i386/kernel/reboot.c               |    2
 arch/i386/kernel/smp.c                  |   64 +++++++++++++++++++--
 arch/i386/kernel/sysenter.c             |    2
 arch/i386/mach-voyager/voyager_smp.c    |    8 +-
 arch/i386/mm/pageattr.c                 |    2
 arch/i386/oprofile/nmi_int.c            |    8 +-
 arch/ia64/kernel/palinfo.c              |    2
 arch/ia64/kernel/perfmon.c              |    2
 arch/ia64/kernel/smp.c                  |   57 ++++++++++++-------
 arch/ia64/kernel/smpboot.c              |    2
 arch/mips/kernel/smp.c                  |   54 ++++++++++++++++--
 arch/mips64/kernel/smp.c                |   74 +++++++++++++++++++++---
 arch/parisc/kernel/cache.c              |    2
 arch/parisc/kernel/irq.c                |    6 +-
 arch/parisc/kernel/smp.c                |   91 ++++++++++++++++++++++++++----
 arch/parisc/mm/init.c                   |    2
 arch/ppc/kernel/smp.c                   |   86 +++++++++++++++++++++++++++-
 arch/ppc64/kernel/smp.c                 |   95 ++++++++++++++++++++++++++++++--
 arch/s390/kernel/smp.c                  |   75 ++++++++++++++++++++++---
 arch/s390x/kernel/smp.c                 |   69 ++++++++++++++++++++---
 arch/sparc64/kernel/smp.c               |   64 ++++++++++++++++++++-
 arch/um/kernel/smp.c                    |   39 ++++++++++++-
 arch/x86_64/kernel/bluesmoke.c          |    2
 arch/x86_64/kernel/cpuid.c              |    2
 arch/x86_64/kernel/io_apic.c            |    2
 arch/x86_64/kernel/ldt.c                |    2
 arch/x86_64/kernel/msr.c                |    4 -
 arch/x86_64/kernel/reboot.c             |    2
 arch/x86_64/kernel/smp.c                |   65 ++++++++++++++++++++-
 arch/x86_64/mm/pageattr.c               |    2
 drivers/char/agp/agp.h                  |    2
 drivers/s390/char/sclp.c                |    2
 drivers/s390/net/iucv.c                 |    4 -
 fs/buffer.c                             |    2
 include/asm-alpha/smp.h                 |    7 --
 include/asm-ia64/smp.h                  |    2
 include/asm-parisc/cacheflush.h         |    7 --
 include/linux/smp.h                     |   12 +++-
 mm/slab.c                               |    2
 48 files changed, 818 insertions(+), 195 deletions(-)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/