Skip to content

Commit

Permalink
x86/cpu/topology: Simplify APIC registration
Browse files Browse the repository at this point in the history
Having the same check whether the number of assigned CPUs has reached the
nr_cpu_ids limit twice in the same code path is pointless. Repeating the
information that CPUs are ignored over and over is also pointless noise.

Remove the redundant check and reduce the noise by using a pr_warn_once().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Sohil Mehta <sohil.mehta@intel.com>
Link: https://lore.kernel.org/r/20240213210252.050264369@linutronix.de
  • Loading branch information
Thomas Gleixner committed Feb 15, 2024
1 parent 58aa34a commit 4c4c6f3
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions arch/x86/kernel/cpu/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,6 @@ static int allocate_logical_cpuid(u32 apic_id)
if (cpu >= 0)
return cpu;

/* Allocate a new cpuid. */
if (nr_logical_cpuids >= nr_cpu_ids) {
WARN_ONCE(1, "APIC: NR_CPUS/possible_cpus limit of %u reached. "
"Processor %d/0x%x and the rest are ignored.\n",
nr_cpu_ids, nr_logical_cpuids, apic_id);
return -EINVAL;
}

cpuid_to_apicid[nr_logical_cpuids] = apic_id;
return nr_logical_cpuids++;
}
Expand All @@ -135,7 +127,7 @@ static void cpu_update_apic(int cpu, u32 apicid)

static int generic_processor_info(int apicid)
{
int cpu, max = nr_cpu_ids;
int cpu;

/* The boot CPU must be set before MADT/MPTABLE parsing happens */
if (cpuid_to_apicid[0] == BAD_APICID)
Expand All @@ -155,21 +147,12 @@ static int generic_processor_info(int apicid)
}

if (num_processors >= nr_cpu_ids) {
int thiscpu = max + disabled_cpus;

pr_warn("APIC: NR_CPUS/possible_cpus limit of %i reached. "
"Processor %d/0x%x ignored.\n", max, thiscpu, apicid);

pr_warn_once("APIC: CPU limit of %d reached. Ignoring further CPUs\n", nr_cpu_ids);
disabled_cpus++;
return -EINVAL;
return -ENOSPC;
}

cpu = allocate_logical_cpuid(apicid);
if (cpu < 0) {
disabled_cpus++;
return -EINVAL;
}

cpu_update_apic(cpu, apicid);
return cpu;
}
Expand Down

0 comments on commit 4c4c6f3

Please sign in to comment.