Date: Fri, 28 Feb 2025 04:29:19 +0000 From: bugzilla-noreply@freebsd.org To: virtualization@FreeBSD.org Subject: [Bug 279901] glibc-2.39-2 and above on the host segfault Message-ID: <bug-279901-27103-zvSlqqvFf5@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-279901-27103@https.bugs.freebsd.org/bugzilla/> References: <bug-279901-27103@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-279901-27103-zvSlqqvFf5>
