From owner-freebsd-amd64@FreeBSD.ORG Wed Feb 12 07:40:01 2014 Return-Path: Delivered-To: freebsd-amd64@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 90511447 for ; Wed, 12 Feb 2014 07:40:01 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 614E711A5 for ; Wed, 12 Feb 2014 07:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id s1C7e1Sd005810 for ; Wed, 12 Feb 2014 07:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.8/8.14.8/Submit) id s1C7e1Mn005809; Wed, 12 Feb 2014 07:40:01 GMT (envelope-from gnats) Date: Wed, 12 Feb 2014 07:40:01 GMT Message-Id: <201402120740.s1C7e1Mn005809@freefall.freebsd.org> To: freebsd-amd64@FreeBSD.org Cc: From: "Simon Matter" Subject: Re: amd64/186061: FreeBSD 10 crashes as KVM guest on GNU/Linux on AMD family 10h CPUs X-Mailman-Approved-At: Wed, 12 Feb 2014 12:30:17 +0000 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: Simon Matter List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Feb 2014 07:40:01 -0000 The following reply was made to PR amd64/186061; it has been noted by GNATS. From: "Simon Matter" To: bug-followup@FreeBSD.org Cc: simon.matter@invoca.ch Subject: Re: amd64/186061: FreeBSD 10 crashes as KVM guest on GNU/Linux on AMD family 10h CPUs Date: Wed, 12 Feb 2014 08:30:51 +0100 ------=_20140212083051_97180 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit As noted by John Baldwin the change to mca.c is not needed. Attached patch is what I'm using now with success. BTW: setting vm.pmap.pg_ps_enabled="0" in loader.conf does also mitigate the issue but I guess it's not the optimal solution. Regards, Simon ------=_20140212083051_97180 Content-Type: text/x-diff; name="vm-erratum383.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="vm-erratum383.patch" --- /usr/src/sys/i386/i386/pmap.c.orig 2014-01-16 21:33:36.000000000 +0100 +++ /usr/src/sys/i386/i386/pmap.c 2014-02-05 22:25:28.395821316 +0100 @@ -752,12 +752,12 @@ pv_entry_high_water = 9 * (pv_entry_max / 10); /* - * If the kernel is running in a virtual machine on an AMD Family 10h - * processor, then it must assume that MCA is enabled by the virtual - * machine monitor. + * If the kernel is running in a virtual machine on any processor + * family, then it must assume that MCA is enabled by the virtual + * machine monitor and the vm may migrate to an AMD Family 10h + * processor. */ - if (vm_guest == VM_GUEST_VM && cpu_vendor_id == CPU_VENDOR_AMD && - CPUID_TO_FAMILY(cpu_id) == 0x10) + if (vm_guest != VM_GUEST_NO) workaround_erratum383 = 1; /* --- /usr/src/sys/amd64/amd64/pmap.c.orig 2014-01-16 21:33:04.000000000 +0100 +++ /usr/src/sys/amd64/amd64/pmap.c 2014-02-05 22:28:25.814349113 +0100 @@ -1005,12 +1005,12 @@ } /* - * If the kernel is running in a virtual machine on an AMD Family 10h - * processor, then it must assume that MCA is enabled by the virtual - * machine monitor. + * If the kernel is running in a virtual machine on any processor + * family, then it must assume that MCA is enabled by the virtual + * machine monitor and the vm may migrate to an AMD Family 10h + * processor. */ - if (vm_guest == VM_GUEST_VM && cpu_vendor_id == CPU_VENDOR_AMD && - CPUID_TO_FAMILY(cpu_id) == 0x10) + if (vm_guest != VM_GUEST_NO) workaround_erratum383 = 1; /* ------=_20140212083051_97180--