Denys Vlasenko
1a8aa8acab
x86/apic: Deinline __default_send_IPI_*, save ~200 bytes
...
__default_send_IPI_shortcut: 49 bytes, 2 callsites
__default_send_IPI_dest_field: 108 bytes, 7 callsites
text data bss dec hex filename
96184086 20860488 36122624 153167198 921255e vmlinux_before
96183823 20860520 36122624 153166967 9212477 vmlinux
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
Cc: Borislav Petkov <bp@alien.de >
Cc: Daniel J Blueman <daniel@numascale.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Mike Travis <travis@sgi.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1457287876-6001-1-git-send-email-dvlasenk@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-03-08 12:26:41 +01:00
Thomas Gleixner
7e29393b20
x86/apic: Provide default send single IPI wrapper
...
Instead of doing the wrapping in the smp code we can provide a default
wrapper for those APICs which insist on cpumasks.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Borislav Petkov <bp@alien.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Mike Travis <travis@sgi.com >
Cc: Daniel J Blueman <daniel@numascale.com >
Link: http://lkml.kernel.org/r/20151104220849.631111846@linutronix.de
2015-11-05 13:07:53 +01:00
Thomas Gleixner
53be0fac8b
x86/apic: Implement default single target IPI function
...
apic_physflat and bigsmp_apic can share that implementation.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Borislav Petkov <bp@alien.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Mike Travis <travis@sgi.com >
Cc: Daniel J Blueman <daniel@numascale.com >
Link: http://lkml.kernel.org/r/20151104220848.898543767@linutronix.de
2015-11-05 13:07:52 +01:00
Paul Gortmaker
663b55b9b3
x86: Delete non-required instances of include <linux/init.h>
...
None of these files are actually using any __init type directives
and hence don't need to include <linux/init.h>. Most are just a
left over from __devinit and __cpuinit removal, or simply due to
code getting copied from one driver to the next.
[ hpa: undid incorrect removal from arch/x86/kernel/head_32.S ]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com >
Link: http://lkml.kernel.org/r/1389054026-12947-1-git-send-email-paul.gortmaker@windriver.com
Signed-off-by: H. Peter Anvin <hpa@zytor.com >
2014-01-06 21:25:18 -08:00
Dave Jones
e3f0f36ddf
x86/apic: Remove noisy zero-mask warning from default_send_IPI_mask_logical()
...
Since circa 3.5, we've had dozens of reports of people hitting
this warning. Forwarded reports have been met with silence, so
just remove the warning if no-one cares.
Example reports:
https://bugzilla.redhat.com/show_bug.cgi?id=797687
https://bugzilla.redhat.com/show_bug.cgi?id=867174
https://bugzilla.redhat.com/show_bug.cgi?id=894865
Signed-off-by: Dave Jones <davej@redhat.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Link: http://lkml.kernel.org/r/20130118175847.GA27662@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2013-01-24 12:12:42 +01:00
Tejun Heo
6f802c4bfa
x86: Always use x86_cpu_to_logical_apicid for cpu -> logical apic id
...
Currently, cpu -> logical apic id translation is done by
apic->cpu_to_logical_apicid() callback which may or may not use
x86_cpu_to_logical_apicid. This is unnecessary as it should
always equal logical_smp_processor_id() which is known early
during CPU bring up.
Initialize x86_cpu_to_logical_apicid after apic->init_apic_ldr()
in setup_local_APIC() and always use x86_cpu_to_logical_apicid
for cpu -> logical apic id mapping.
Signed-off-by: Tejun Heo <tj@kernel.org >
Cc: eric.dumazet@gmail.com
Cc: yinghai@kernel.org
Cc: brgerst@gmail.com
Cc: gorcunov@gmail.com
Cc: penberg@kernel.org
Cc: shaohui.zheng@intel.com
Cc: rientjes@google.com
LKML-Reference: <1295789862-25482-6-git-send-email-tj@kernel.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-01-28 14:54:05 +01:00
Tejun Heo
1245e1668c
x86: Make default_send_IPI_mask_sequence/allbutself_logical() 32bit only
...
Both functions are used only in 32bit. Put them inside
CONFIG_X86_32. This is to prepare for logical apicid handling
update.
- Cyrill Gorcunov spotted that I forgot to move declarations in
ipi.h under CONFIG_X86_32. Fixed.
Signed-off-by: Tejun Heo <tj@kernel.org >
Reviewed-by: Pekka Enberg <penberg@kernel.org >
Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com >
Acked-by: Yinghai Lu <yinghai@kernel.org >
Cc: eric.dumazet@gmail.com
Cc: brgerst@gmail.com
Cc: shaohui.zheng@intel.com
Cc: rientjes@google.com
LKML-Reference: <1295789862-25482-4-git-send-email-tj@kernel.org >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2011-01-28 14:54:05 +01:00
Ingo Molnar
5f9ece0240
Merge commit 'v2.6.31-rc7' into x86/cleanups
...
Merge reason: we were on -rc1 before - go up to -rc7
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-08-24 12:25:54 +02:00
Linus Torvalds
83d349f35e
x86: don't send an IPI to the empty set of CPU's
...
The default_send_IPI_mask_logical() function uses the "flat" APIC mode
to send an IPI to a set of CPU's at once, but if that set happens to be
empty, some older local APIC's will apparently be rather unhappy. So
just warn if a caller gives us an empty mask, and ignore it.
This fixes a regression in 2.6.30.x, due to commit 4595f9620
("x86:
change flush_tlb_others to take a const struct cpumask"), documented
here:
http://bugzilla.kernel.org/show_bug.cgi?id=13933
which causes a silent lock-up. It only seems to happen on PPro, P2, P3
and Athlon XP cores. Most developers sadly (or not so sadly, if you're
a developer..) have more modern CPU's. Also, on x86-64 we don't use the
flat APIC mode, so it would never trigger there even if the APIC didn't
like sending an empty IPI mask.
Reported-by: Pavel Vilim <wylda@volny.cz >
Reported-and-tested-by: Thomas Björnell <thomas.bjornell@gmail.com >
Reported-and-tested-by: Martin Rogge <marogge@onlinehome.de >
Cc: Mike Travis <travis@sgi.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2009-08-21 09:23:57 -07:00
Cyrill Gorcunov
a1b4f1a5b7
x86, ipi: Clean up safe_smp_processor_id() by using the cpu_has_apic() macro helper
...
We already use a lot of cpu_has_ helpers.
Lets do here the same for consistency.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org >
Cc: Yinghai Lu <yinghai@kernel.org >
LKML-Reference: <20090705160154.GB4791@lenovo>
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-07-10 15:58:34 +02:00
Ingo Molnar
f62bae5009
x86, apic: move APIC drivers to arch/x86/kernel/apic/*
...
arch/x86/kernel/ is getting a bit crowded, and the APIC
drivers are scattered into various different files.
Move them to arch/x86/kernel/apic/*, and also remove
the 'gen' prefix from those which had it.
Also move APIC related functionality: the IO-APIC driver,
the NMI and the IPI code.
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2009-02-17 18:17:36 +01:00