From mboxrd@z Thu Jan 1 00:00:00 1970 From: Walter Haidinger Subject: Re: OpenBSD 5.0 kernel panic in AMD K10 cpu power state Date: Wed, 09 Nov 2011 15:19:05 +0100 Message-ID: <4EBA8BD9.8050800@gmx.at> References: <4EB8F576.9040203@gmx.at> <4EBA5848.7070404@redhat.com> <4EBA82BA.1090602@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from mailout-de.gmx.net ([213.165.64.23]:51790 "HELO mailout-de.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752988Ab1KIOTK (ORCPT ); Wed, 9 Nov 2011 09:19:10 -0500 In-Reply-To: <4EBA82BA.1090602@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Am 09.11.2011 14:40, schrieb Avi Kivity: Actually, it looks like an OpenBSD bug. According to the AMD documentation: > > "The current P-state value can be read using the P-State Status > Register. The P-State Current Limit Register and the P-State Status > Register are read-only registers. Writes to these registers cause a > #GP exception. Support for hardware P-state control is indicated by > EDX bit 7 as returned by CPUID function 8000_0007h. Figure 18-1 shows > the format of the P-State Current Limit register." I'll forward this to the openbsd mailing-list. > Can you check what cpuid 80000007 returns by running 'x86info -r | > grep 80000007' in a Linux guest with the same command line? if edx > returns zero, then it's OpenBSD not checking cpuid correctly. EDX for 0x80000007 is zero. Checked on both i386 and x86_64 guest grml (2011.05 with 2.6.38 kernel) Linux live CD, full rx86info output appended below. Walter grml@grml ~ % x86info -r x86info v1.25. Dave Jones 2001-2009 Feedback to . Found 1 CPU -------------------------------------------------------------------------- EFamily: 1 EModel: 0 Family: 15 Model: 10 Stepping: 0 CPU Model: Unknown CPU Processor name string: AMD Phenom(tm) II X6 1100T Processor Monitor/Mwait: min/max line size 0/0, ecx bit 0 support, enumeration extension SVM: revision 1, 16 ASIDs, np, NRIPSave Address Size: 48 bits virtual, 40 bits physical eax in: 0x00000000, eax = 00000006 ebx = 68747541 ecx = 444d4163 edx = 69746e65 eax in: 0x00000001, eax = 00100fa0 ebx = 00000800 ecx = 80802001 edx = 078bfbff eax in: 0x00000002, eax = 00000001 ebx = 00000000 ecx = 00000000 edx = 002c307d eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 00000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x00000005, eax = 00000000 ebx = 00000000 ecx = 00000003 edx = 00000000 eax in: 0x00000006, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000000, eax = 8000001b ebx = 68747541 ecx = 444d4163 edx = 69746e65 eax in: 0x80000001, eax = 00100fa0 ebx = 00000000 ecx = 000001f7 edx = 27d3fbff eax in: 0x80000002, eax = 20444d41 ebx = 6e656850 ecx = 74286d6f edx = 4920296d eax in: 0x80000003, eax = 36582049 ebx = 30313120 ecx = 50205430 edx = 65636f72 eax in: 0x80000004, eax = 726f7373 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000005, eax = 01ff01ff ebx = 01ff01ff ecx = 40020140 edx = 40020140 eax in: 0x80000006, eax = 00000000 ebx = 42004200 ecx = 02008140 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003028 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000a, eax = 00000001 ebx = 00000010 ecx = 00000000 edx = 00000009 eax in: 0x8000000b, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000c, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000d, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000e, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000f, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000010, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000011, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000012, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000013, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000014, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000015, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000016, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000017, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000018, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000019, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000001a, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000001b, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000