[Bug 279901] glibc-2.39-2 and above on the host segfault
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 279901] glibc-2.39-2 and above on the host segfault"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 28 Feb 2025 04:29:19 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279901 --- Comment #68 from Koichiro Iwao <meta@FreeBSD.org> --- (In reply to Koichiro Iwao from comment #65) This wasn't correct. > The bhyve patch means here is the following: > >--- a/sys/amd64/vmm/x86.c >+++ b/sys/amd64/vmm/x86.c >@@ -152,6 +152,8 @@ x86_emulate_cpuid(struct vcpu *vcpu, uint64_t *rax, uint64_t *rbx, > * pkg_id_shift and other OSes may rely on it. > */ > width = MIN(0xF, log2(threads * cores)); >+ if (width < 0x4) >+ width = 0; > logical_cpus = MIN(0xFF, threads * cores - 1); > regs[2] = (width << AMDID_COREID_SIZE_SHIFT) | logical_cpus; This is the correct patch I meant. --- a/sys/amd64/vmm/x86.c +++ b/sys/amd64/vmm/x86.c @@ -258,7 +256,7 @@ x86_emulate_cpuid(struct vcpu *vcpu, uint64_t *rax, uint64_t *rbx, func = 3; /* unified cache */ break; default: - logical_cpus = 0; + logical_cpus = sockets * threads * cores; level = 0; func = 0; break; @@ -268,7 +266,7 @@ x86_emulate_cpuid(struct vcpu *vcpu, uint64_t *rax, uint64_t *rbx, regs[0] = (logical_cpus << 14) | (1 << 8) | (level << 5) | func; regs[1] = (func > 0) ? (CACHE_LINE_SIZE - 1) : 0; - regs[2] = 0; + regs[2] = 1; /* Num of cache ways */ regs[3] = 0; break; -- You are receiving this mail because: You are the assignee for the bug.