lkml.org 
[lkml]   [2022]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 2/4] arch-topology: add a default implementation of store_cpu_topology()
    Date
    From: Conor Dooley <conor.dooley@microchip.com>

    RISC-V & arm64 both use an almost identical method of filling in
    default vales for arch topology. Create a weakly defined default
    implementation with the intent of migrating both archs to use it.

    Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
    ---
    drivers/base/arch_topology.c | 19 +++++++++++++++++++
    include/linux/arch_topology.h | 1 +
    2 files changed, 20 insertions(+)

    diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
    index 441e14ac33a4..07e84c6ac5c2 100644
    --- a/drivers/base/arch_topology.c
    +++ b/drivers/base/arch_topology.c
    @@ -765,6 +765,25 @@ void update_siblings_masks(unsigned int cpuid)
    }
    }

    +void __weak store_cpu_topology(unsigned int cpuid)
    +{
    + struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
    +
    + if (cpuid_topo->package_id != -1)
    + goto topology_populated;
    +
    + cpuid_topo->thread_id = -1;
    + cpuid_topo->core_id = cpuid;
    + cpuid_topo->package_id = cpu_to_node(cpuid);
    +
    + pr_debug("CPU%u: package %d core %d thread %d\n",
    + cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
    + cpuid_topo->thread_id);
    +
    +topology_populated:
    + update_siblings_masks(cpuid);
    +}
    +
    static void clear_cpu_topology(int cpu)
    {
    struct cpu_topology *cpu_topo = &cpu_topology[cpu];
    diff --git a/include/linux/arch_topology.h b/include/linux/arch_topology.h
    index a07b510e7dc5..fee306b8a541 100644
    --- a/include/linux/arch_topology.h
    +++ b/include/linux/arch_topology.h
    @@ -92,6 +92,7 @@ void update_siblings_masks(unsigned int cpu);
    void remove_cpu_topology(unsigned int cpuid);
    void reset_cpu_topology(void);
    int parse_acpi_topology(void);
    +
    #endif

    #endif /* _LINUX_ARCH_TOPOLOGY_H_ */
    --
    2.37.0
    \
     
     \ /
      Last update: 2022-07-08 00:06    [W:3.283 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site