From 23df051030add5f755633fc7a88ea66404f26adf Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 18 May 2019 18:43:08 +0100 Subject: [PATCH] lscpu: fix floating point exception As the title tells this change indeed fixes floating point exception, but post processing as value overwrite feels a wrong. Possibly something in input is making cpu set count to go wrong, but I could not get my head around what could it be. Anyway avoiding division by zero seems better than crashing so lets do this atleast for now. Caused-by: e5f721132ec8b8c933a396d8dcb3efcb67854f13 Addresses: https://github.com/karelzak/util-linux/issues/788 Reported-by: Lars Wendler Signed-off-by: Sami Kerola --- sys-utils/lscpu.c | 2 + tests/expected/lscpu/lscpu-vmware_fpe | 76 +++++++++++++++++++++++++ tests/ts/lscpu/dumps/vmware_fpe.tar.gz | Bin 0 -> 59743 bytes 3 files changed, 78 insertions(+) create mode 100644 tests/expected/lscpu/lscpu-vmware_fpe create mode 100644 tests/ts/lscpu/dumps/vmware_fpe.tar.gz diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index ca7f6a0378..7f6277f00e 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -1925,6 +1925,8 @@ static int get_cache_full_size(struct lscpu_desc *desc, /* Correction for CPU threads */ if (desc->nthreads > desc->ncores) nshares /= (desc->nthreads / desc->ncores); + if (nshares < 1) + nshares = 1; *res = (desc->ncores / nshares) * ca->size; return 0; diff --git a/tests/expected/lscpu/lscpu-vmware_fpe b/tests/expected/lscpu/lscpu-vmware_fpe new file mode 100644 index 0000000000..2b68db2772 --- /dev/null +++ b/tests/expected/lscpu/lscpu-vmware_fpe @@ -0,0 +1,76 @@ +CPU op-mode(s): 32-bit, 64-bit +Address sizes: 48 bits physical, 48 bits virtual +CPU(s): 16 +On-line CPU(s) list: 0-15 +Thread(s) per core: 2 +Core(s) per socket: 4 +Socket(s): 2 +NUMA node(s): 4 +Vendor ID: AuthenticAMD +CPU family: 21 +Model: 2 +Model name: AMD Opteron(tm) Processor 6328 +Stepping: 0 +Frequency boost: enabled +CPU MHz: 1605.776 +CPU max MHz: 3200.0000 +CPU min MHz: 1400.0000 +BogoMIPS: 6399.69 +Virtualization: AMD-V +L1d cache: 128 KiB +L1i cache: 512 KiB +L2 cache: 16 MiB +L3 cache: 24 MiB +NUMA node0 CPU(s): 0-3 +NUMA node1 CPU(s): 4-7 +NUMA node2 CPU(s): 8-11 +NUMA node3 CPU(s): 12-15 +Vulnerability L1tf: Not affected +Vulnerability Mds: Not affected +Vulnerability Meltdown: Not affected +Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp +Vulnerability Spectre v1: Mitigation; __user pointer sanitization +Vulnerability Spectre v2: Mitigation; Full AMD retpoline, IBPB conditional, STIBP disabled, RSB filling +Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb cpb hw_pstate ssbd ibpb vmmcall bmi1 arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold + +# The following is the parsable format, which can be fed to other +# programs. Each different item in every column has an unique ID +# starting from zero. +# CPU,Core,Socket,Node,,L1d,L1i,L2,L3 +0,0,0,0,,0,0,0,0 +1,0,0,0,,1,0,0,0 +2,1,0,0,,2,1,1,0 +3,1,0,0,,3,1,1,0 +4,2,0,1,,4,2,2,1 +5,2,0,1,,5,2,2,1 +6,3,0,1,,6,3,3,1 +7,3,0,1,,7,3,3,1 +8,4,1,2,,8,4,4,2 +9,4,1,2,,9,4,4,2 +10,5,1,2,,10,5,5,2 +11,5,1,2,,11,5,5,2 +12,6,1,3,,12,6,6,3 +13,6,1,3,,13,6,6,3 +14,7,1,3,,14,7,7,3 +15,7,1,3,,15,7,7,3 + +# The following is the parsable format, which can be fed to other +# programs. Each different item in every column has an unique ID +# starting from zero. +# CPU,Core,Socket,Node,,L1d,L1i,L2,L3 +0,0,0,0,,0,0,0,0 +1,1,0,0,,1,0,0,0 +2,2,0,0,,2,1,1,0 +3,3,0,0,,3,1,1,0 +4,0,0,1,,4,2,2,1 +5,1,0,1,,5,2,2,1 +6,2,0,1,,6,3,3,1 +7,3,0,1,,7,3,3,1 +8,0,1,2,,8,4,4,2 +9,1,1,2,,9,4,4,2 +10,2,1,2,,10,5,5,2 +11,3,1,2,,11,5,5,2 +12,0,1,3,,12,6,6,3 +13,1,1,3,,13,6,6,3 +14,2,1,3,,14,7,7,3 +15,3,1,3,,15,7,7,3 diff --git a/tests/ts/lscpu/dumps/vmware_fpe.tar.gz b/tests/ts/lscpu/dumps/vmware_fpe.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fc6aed4a09eeda4eb880f5841a93f86ba51019a GIT binary patch literal 59743 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 literal 0 Hc-jL100001 -- 2.47.2