Re: [PATCH 1/2] powerpc: Detect the presence of big-core with interleaved threads
From: Gautham R Shenoy <hidden>
Date: 2018-05-22 04:31:30
Also in:
lkml
Hello Michael, On Fri, May 18, 2018 at 11:14:04PM +1000, Michael Ellerman wrote:
Gautham R Shenoy [off-list ref] writes: ...quoted
quoted
quoted
@@ -565,7 +615,16 @@ void __init smp_setup_cpu_maps(void) vdso_data->processorCount = num_present_cpus(); #endif /* CONFIG_PPC64 */ - /* Initialize CPU <=> thread mapping/ + dn = of_find_node_by_type(NULL, "cpu"); + if (dn) { + if (check_for_interleaved_big_core(dn)) { + has_interleaved_big_core = true; + pr_info("Detected interleaved big-cores\n");Is there a runtime way to check this also? If the dmesg buffer overflows, we lose this.Where do you suggest we put this ? Should it be a part of /proc/cpuinfo ?Hmm, it'd be nice not to pollute it with more junk. Can you just look at the pir files in sysfs?
Sure Michael. I will explore this option. If we add a file called l1cache_thread_group, then the siblings of the big-core that share the L1-cache can be described as follows. # cd /sys/devices/system/cpu # grep . cpu[0-7]/l1cache_thread_group cpu0/l1cache_thread_group:0,2,4,6 cpu1/l1cache_thread_group:1,3,5,7 cpu2/l1cache_thread_group:0,2,4,6 cpu3/l1cache_thread_group:1,3,5,7 cpu4/l1cache_thread_group:0,2,4,6 cpu5/l1cache_thread_group:1,3,5,7 cpu6/l1cache_thread_group:0,2,4,6 cpu7/l1cache_thread_group:1,3,5,7
eg. on a normal system: # cd /sys/devices/system/cpu # grep . cpu[0-7]/pir cpu0/pir:20 cpu1/pir:21 cpu2/pir:22 cpu3/pir:23 cpu4/pir:24 cpu5/pir:25 cpu6/pir:26 cpu7/pir:27
cheers