From 5aa7ad17fc17b9458ff4381294c27d176c651d5d Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Thu, 22 May 2025 13:04:48 +0800 Subject: [PATCH] lscpu: Fix loongarch op-mode output with recent kernel Since Linux-6.12, the "loongarch32" item in the ISA field is separated to "loongarch32r" and "loongarch32s," breaking our expectation. Link: https://git.kernel.org/torvalds/c/34e3c4500cdc Signed-off-by: Xi Ruoyao --- sys-utils/lscpu-cputype.c | 4 +- .../lscpu-loongarch-kvm_on_loongson_3c6000 | 108 ++++++++++++++++++ .../loongarch-kvm_on_loongson_3c6000.tar.gz | Bin 0 -> 50753 bytes 3 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 tests/expected/lscpu/lscpu-loongarch-kvm_on_loongson_3c6000 create mode 100644 tests/ts/lscpu/dumps/loongarch-kvm_on_loongson_3c6000.tar.gz diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c index 0626df6a0..50eec6a37 100644 --- a/sys-utils/lscpu-cputype.c +++ b/sys-utils/lscpu-cputype.c @@ -773,7 +773,9 @@ struct lscpu_arch *lscpu_read_architecture(struct lscpu_cxt *cxt) char buf[BUFSIZ]; snprintf(buf, sizeof(buf), " %s ", ct->isa); - if (strstr(buf, " loongarch32 ")) + if (strstr(buf, " loongarch32 ") + || strstr(buf, " loongarch32s ") + || strstr(buf, " loongarch32r ")) ar->bit32 = 1; if (strstr(buf, " loongarch64 ")) ar->bit64 = 1; diff --git a/tests/expected/lscpu/lscpu-loongarch-kvm_on_loongson_3c6000 b/tests/expected/lscpu/lscpu-loongarch-kvm_on_loongson_3c6000 new file mode 100644 index 000000000..564a5012b --- /dev/null +++ b/tests/expected/lscpu/lscpu-loongarch-kvm_on_loongson_3c6000 @@ -0,0 +1,108 @@ +CPU op-mode(s): 32-bit, 64-bit +Address sizes: 48 bits physical, 48 bits virtual +Byte Order: Little Endian +CPU(s): 32 +On-line CPU(s) list: 0-31 +Model name: Loongson-3A5000 +CPU family: Loongson-64bit +Model: 0x10 +Thread(s) per core: 1 +Core(s) per socket: 1 +Socket(s): 32 +BogoMIPS: 4000.00 +Flags: cpucfg lam ual fpu lsx lasx crc32 lspw lbt_x86 lbt_arm lbt_mips +L1d cache: 2 MiB (32 instances) +L1i cache: 2 MiB (32 instances) +L2 cache: 8 MiB (32 instances) +L3 cache: 16 MiB (1 instance) +NUMA node(s): 1 +NUMA node0 CPU(s): 0-31 +Vulnerability Gather data sampling: Not affected +Vulnerability Ghostwrite: Not affected +Vulnerability Itlb multihit: Not affected +Vulnerability L1tf: Not affected +Vulnerability Mds: Not affected +Vulnerability Meltdown: Not affected +Vulnerability Mmio stale data: Not affected +Vulnerability Reg file data sampling: Not affected +Vulnerability Retbleed: Not affected +Vulnerability Spec rstack overflow: Not affected +Vulnerability Spec store bypass: Not affected +Vulnerability Spectre v1: Not affected +Vulnerability Spectre v2: Not affected +Vulnerability Srbds: Not affected +Vulnerability Tsx async abort: Not affected + +# The following is the parsable format, which can be fed to other +# programs. Each different item in every column has an unique ID +# starting usually from zero. +# CPU,Core,Socket,Node,,L1d,L1i,L2,L3 +0,0,0,0,,0,0,0,0 +1,1,1,0,,1,1,1,0 +2,2,2,0,,2,2,2,0 +3,3,3,0,,3,3,3,0 +4,4,4,0,,4,4,4,0 +5,5,5,0,,5,5,5,0 +6,6,6,0,,6,6,6,0 +7,7,7,0,,7,7,7,0 +8,8,8,0,,8,8,8,0 +9,9,9,0,,9,9,9,0 +10,10,10,0,,10,10,10,0 +11,11,11,0,,11,11,11,0 +12,12,12,0,,12,12,12,0 +13,13,13,0,,13,13,13,0 +14,14,14,0,,14,14,14,0 +15,15,15,0,,15,15,15,0 +16,16,16,0,,16,16,16,0 +17,17,17,0,,17,17,17,0 +18,18,18,0,,18,18,18,0 +19,19,19,0,,19,19,19,0 +20,20,20,0,,20,20,20,0 +21,21,21,0,,21,21,21,0 +22,22,22,0,,22,22,22,0 +23,23,23,0,,23,23,23,0 +24,24,24,0,,24,24,24,0 +25,25,25,0,,25,25,25,0 +26,26,26,0,,26,26,26,0 +27,27,27,0,,27,27,27,0 +28,28,28,0,,28,28,28,0 +29,29,29,0,,29,29,29,0 +30,30,30,0,,30,30,30,0 +31,31,31,0,,31,31,31,0 + +# The following is the parsable format, which can be fed to other +# programs. Each different item in every column has an unique ID +# starting usually from zero. +# CPU,Core,Socket,Node,,L1d,L1i,L2,L3 +0,0,0,0,,0,0,0,0 +1,1,1,0,,1,1,1,0 +2,2,2,0,,2,2,2,0 +3,3,3,0,,3,3,3,0 +4,4,4,0,,4,4,4,0 +5,5,5,0,,5,5,5,0 +6,6,6,0,,6,6,6,0 +7,7,7,0,,7,7,7,0 +8,8,8,0,,8,8,8,0 +9,9,9,0,,9,9,9,0 +10,10,10,0,,10,10,10,0 +11,11,11,0,,11,11,11,0 +12,12,12,0,,12,12,12,0 +13,13,13,0,,13,13,13,0 +14,14,14,0,,14,14,14,0 +15,15,15,0,,15,15,15,0 +16,16,16,0,,16,16,16,0 +17,17,17,0,,17,17,17,0 +18,18,18,0,,18,18,18,0 +19,19,19,0,,19,19,19,0 +20,20,20,0,,20,20,20,0 +21,21,21,0,,21,21,21,0 +22,22,22,0,,22,22,22,0 +23,23,23,0,,23,23,23,0 +24,24,24,0,,24,24,24,0 +25,25,25,0,,25,25,25,0 +26,26,26,0,,26,26,26,0 +27,27,27,0,,27,27,27,0 +28,28,28,0,,28,28,28,0 +29,29,29,0,,29,29,29,0 +30,30,30,0,,30,30,30,0 +31,31,31,0,,31,31,31,0 diff --git a/tests/ts/lscpu/dumps/loongarch-kvm_on_loongson_3c6000.tar.gz b/tests/ts/lscpu/dumps/loongarch-kvm_on_loongson_3c6000.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..84ed1031ddd4f556a69dd350f6472b6f952445ce GIT binary patch literal 50753 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 JFEVCKFYq=&nFTTB_DoR<72 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