lkml.org 
[lkml]   [2017]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/3 v3] x86/topology: Avoid wasting 128k for package id array
On Thu, 19 Oct 2017, Prarit Bhargava wrote:
> static void remove_siblinginfo(int cpu)
> {
> - int sibling;
> + int phys_pkg_id, sibling;
> struct cpuinfo_x86 *c = &cpu_data(cpu);
>
> for_each_cpu(sibling, topology_core_cpumask(cpu)) {
> @@ -1529,6 +1526,12 @@ static void remove_siblinginfo(int cpu)
> cpumask_clear(topology_core_cpumask(cpu));
> c->phys_proc_id = 0;
> c->cpu_core_id = 0;
> +
> + phys_pkg_id = c->phys_pkg_id;
> + c->phys_pkg_id = U16_MAX;

This leaves c->logical_proc_set = 1, which is inconsistent at best. I have
no idea why we need this logical_proc_set flag at all.

> + if (topology_phys_to_logical_pkg(phys_pkg_id) < 0)
> + logical_packages--;

Now this has another issue. Depending on hotplug ordering the logical
package association can change across hotplug operations. I don't know it
that's an issue, but this needs to be analyzed before we merge that.

Thanks,

tglx


\
 
 \ /
  Last update: 2017-10-22 17:35    [W:0.045 / U:0.368 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site