From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Tom Lendacky <thomas.lendacky@amd.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Arjan van de Ven <arjan@linux.intel.com>,
Huang Rui <ray.huang@amd.com>, Juergen Gross <jgross@suse.com>,
Dimitri Sivanich <dimitri.sivanich@hpe.com>,
Sohil Mehta <sohil.mehta@intel.com>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Kan Liang <kan.liang@linux.intel.com>,
Zhang Rui <rui.zhang@intel.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Feng Tang <feng.tang@intel.com>,
Andy Shevchenko <andy@infradead.org>,
Michael Kelley <mhklinux@outlook.com>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Wei Liu <wei.liu@kernel.org>
Subject: [patch V2 05/22] x86/ioapic: Make io_apic_get_unique_id() simpler
Date: Tue, 23 Jan 2024 14:10:10 +0100 (CET) [thread overview]
Message-ID: <20240117124902.666403054@linutronix.de> (raw)
In-Reply-To: 20240117124704.044462658@linutronix.de
From: Thomas Gleixner <tglx@linutronix.de>
No need to go through APIC callbacks. It's already established that this is
an ancient APIC. So just copy the present mask and use the direct physid*
functions all over the place.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/x86/kernel/apic/io_apic.c | 22 +++++-----------------
1 file changed, 5 insertions(+), 17 deletions(-)
---
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2498,17 +2498,9 @@ static int io_apic_get_unique_id(int ioa
unsigned long flags;
int i = 0;
- /*
- * The P4 platform supports up to 256 APIC IDs on two separate APIC
- * buses (one for LAPICs, one for IOAPICs), where predecessors only
- * supports up to 16 on one shared APIC bus.
- *
- * TBD: Expand LAPIC/IOAPIC support on P4-class systems to take full
- * advantage of new APIC bus architecture.
- */
-
+ /* Initialize the ID map */
if (physids_empty(apic_id_map))
- apic->ioapic_phys_id_map(&phys_cpu_present_map, &apic_id_map);
+ apic_id_map = phys_cpu_present_map;
raw_spin_lock_irqsave(&ioapic_lock, flags);
reg_00.raw = io_apic_read(ioapic, 0);
@@ -2520,14 +2512,10 @@ static int io_apic_get_unique_id(int ioa
apic_id = reg_00.bits.ID;
}
- /*
- * Every APIC in a system must have a unique ID or we get lots of nice
- * 'stuck on smp_invalidate_needed IPI wait' messages.
- */
- if (apic->check_apicid_used(&apic_id_map, apic_id)) {
-
+ /* Every APIC in a system must have a unique ID */
+ if (physid_isset(apic_id, apic_id_map)) {
for (i = 0; i < broadcast_id; i++) {
- if (!apic->check_apicid_used(&apic_id_map, i))
+ if (!physid_isset(i, apic_id_map))
break;
}
next prev parent reply other threads:[~2024-01-23 13:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-23 13:10 [patch V2 00/22] x86/topology: More cleanups and preparatory work Thomas Gleixner
2024-01-23 13:10 ` [patch V2 01/22] x86/cpu/topology: Make the APIC mismatch warnings complete Thomas Gleixner
2024-01-25 9:53 ` Ashok Raj
2024-02-12 15:39 ` Thomas Gleixner
2024-01-23 13:10 ` [patch V2 02/22] x86/platform/ce4100: Dont override x86_init.mpparse.setup_ioapic_ids Thomas Gleixner
2024-01-23 13:10 ` [patch V2 03/22] x86/ioapic: Replace some more set bit nonsense Thomas Gleixner
2024-01-23 13:10 ` [patch V2 04/22] x86/apic: Get rid of get_physical_broadcast() Thomas Gleixner
2024-02-01 22:24 ` Sohil Mehta
2024-01-23 13:10 ` Thomas Gleixner [this message]
2024-01-23 13:10 ` [patch V2 06/22] x86/ioapic: Simplify setup_ioapic_ids_from_mpc_nocheck() Thomas Gleixner
2024-01-23 13:10 ` [patch V2 07/22] x86/apic: Remove check_apicid_used() and ioapic_phys_id_map() Thomas Gleixner
2024-01-23 13:10 ` [patch V2 08/22] x86/mpparse: Rename default_find_smp_config() Thomas Gleixner
2024-01-23 13:10 ` [patch V2 09/22] x86/mpparse: Provide separate early/late callbacks Thomas Gleixner
2024-01-23 13:10 ` [patch V2 10/22] x86/mpparse: Prepare for callback separation Thomas Gleixner
2024-01-23 13:10 ` [patch V2 11/22] x86/dtb: Rename x86_dtb_init() Thomas Gleixner
2024-01-23 13:10 ` [patch V2 12/22] x86/platform/ce4100: Prepare for separate mpparse callbacks Thomas Gleixner
2024-01-23 13:10 ` [patch V2 13/22] x86/platform/intel-mid: " Thomas Gleixner
2024-01-23 13:10 ` [patch V2 14/22] x86/jailhouse: " Thomas Gleixner
2024-01-23 13:10 ` [patch V2 15/22] x86/xen/smp_pv: " Thomas Gleixner
2024-01-23 13:10 ` [patch V2 16/22] x86/hyperv/vtl: " Thomas Gleixner
2024-01-23 13:10 ` [patch V2 17/22] x86/mpparse: Switch to new init callbacks Thomas Gleixner
2024-01-23 13:10 ` [patch V2 18/22] x86/mm/numa: Move early mptable evaluation into common code Thomas Gleixner
2024-01-23 13:10 ` [patch V2 19/22] x86/mpparse: Remove the physid_t bitmap wrapper Thomas Gleixner
2024-01-23 13:10 ` [patch V2 20/22] x86/apic: Remove the pointless writeback of boot_cpu_physical_apicid Thomas Gleixner
2024-01-23 13:10 ` [patch V2 21/22] x86/apic: Remove yet another dubious callback Thomas Gleixner
2024-01-23 13:10 ` [patch V2 22/22] x86/apic: Use a proper define for invalid ACPI CPU ID Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240117124902.666403054@linutronix.de \
--to=tglx@linutronix.de \
--cc=andrew.cooper3@citrix.com \
--cc=andy.shevchenko@gmail.com \
--cc=andy@infradead.org \
--cc=arjan@linux.intel.com \
--cc=dimitri.sivanich@hpe.com \
--cc=feng.tang@intel.com \
--cc=jgross@suse.com \
--cc=kan.liang@linux.intel.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=ray.huang@amd.com \
--cc=rui.zhang@intel.com \
--cc=sohil.mehta@intel.com \
--cc=thomas.lendacky@amd.com \
--cc=wei.liu@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox