Currently, /proc/cpuinfo show logical CPU ID as Hart ID which is in-correct. This patch shows CPU ID and Hart ID separately in /proc/cpuinfo using cpuid_to_hardid_map().
With this patch, contents of /proc/cpuinfo looks as follows: cpu : 0 hart : 1 isa : rv64imafdcsu mmu : sv48 cpu : 1 hart : 0 isa : rv64imafdcsu mmu : sv48 cpu : 2 hart : 3 isa : rv64imafdcsu mmu : sv48 cpu : 3 hart : 2 isa : rv64imafdcsu mmu : sv48 Signed-off-by: Anup Patel <a...@brainfault.org> --- arch/riscv/kernel/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index f0f0ec2737b7..7c1342e242e6 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -87,7 +87,8 @@ static int c_show(struct seq_file *m, void *v) NULL); const char *compat, *isa, *mmu; - seq_printf(m, "hart\t: %lu\n", cpu_id); + seq_printf(m, "cpu\t: %lu\n", cpu_id); + seq_printf(m, "hart\t: %lu\n", cpuid_to_hardid_map(cpu_id)); if (!of_property_read_string(node, "riscv,isa", &isa) && isa[0] == 'r' && isa[1] == 'v') -- 2.17.1