Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/806861/?format=api
{ "id": 806861, "url": "http://patchwork.ozlabs.org/api/patches/806861/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-52-git-send-email-mdroth@linux.vnet.ibm.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1503965694-10794-52-git-send-email-mdroth@linux.vnet.ibm.com>", "list_archive_url": null, "date": "2017-08-29T00:14:26", "name": "[51/79] pc: Use \"min-[x]level\" on compat_props", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d0f151c5c27036489b26ceab3b870063ac977057", "submitter": { "id": 5549, "url": "http://patchwork.ozlabs.org/api/people/5549/?format=api", "name": "Michael Roth", "email": "mdroth@linux.vnet.ibm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-52-git-send-email-mdroth@linux.vnet.ibm.com/mbox/", "series": [ { "id": 281, "url": "http://patchwork.ozlabs.org/api/series/281/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=281", "date": "2017-08-29T00:13:45", "name": "Patch Round-up for stable 2.9.1, freeze on 2017-09-04", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/281/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/806861/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/806861/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xh99g28ctz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Aug 2017 10:53:27 +1000 (AEST)", "from localhost ([::1]:42093 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dmUmT-0000dR-4I\n\tfor incoming@patchwork.ozlabs.org; Mon, 28 Aug 2017 20:53:25 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:48433)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCe-0001V1-VC\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:28 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCb-0005kv-JP\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:24 -0400", "from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58074)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <mdroth@linux.vnet.ibm.com>)\n\tid 1dmUCb-0005jZ-AK\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:21 -0400", "from pps.filterd (m0098394.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv7T0FKh1044218\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:20 -0400", "from e15.ny.us.ibm.com (e15.ny.us.ibm.com [129.33.205.205])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cmsrsj1vk-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:20 -0400", "from localhost\n\tby e15.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <mdroth@linux.vnet.ibm.com>;\n\tMon, 28 Aug 2017 20:16:19 -0400", "from b01cxnp22036.gho.pok.ibm.com (9.57.198.26)\n\tby e15.ny.us.ibm.com (146.89.104.202) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tMon, 28 Aug 2017 20:16:16 -0400", "from b01ledav002.gho.pok.ibm.com (b01ledav002.gho.pok.ibm.com\n\t[9.57.199.107])\n\tby b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid v7T0GGNN30015690; Tue, 29 Aug 2017 00:16:16 GMT", "from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 66DDF124050;\n\tMon, 28 Aug 2017 20:13:36 -0400 (EDT)", "from localhost (unknown [9.80.85.217])\n\tby b01ledav002.gho.pok.ibm.com (Postfix) with ESMTP id 2FBBD124035;\n\tMon, 28 Aug 2017 20:13:36 -0400 (EDT)" ], "From": "Michael Roth <mdroth@linux.vnet.ibm.com>", "To": "qemu-devel@nongnu.org", "Date": "Mon, 28 Aug 2017 19:14:26 -0500", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>", "References": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>", "X-TM-AS-GCONF": "00", "x-cbid": "17082900-0036-0000-0000-000002603F83", "X-IBM-SpamModules-Scores": "", "X-IBM-SpamModules-Versions": "BY=3.00007630; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00909027; UDB=6.00455849;\n\tIPR=6.00689279; \n\tBA=6.00005557; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016909;\n\tXFM=3.00000015; UTC=2017-08-29 00:16:18", "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused", "x-cbparentid": "17082900-0037-0000-0000-000041964A96", "Message-Id": "<1503965694-10794-52-git-send-email-mdroth@linux.vnet.ibm.com>", "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-08-28_13:, , signatures=0", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1708290001", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]", "X-Received-From": "148.163.156.1", "Subject": "[Qemu-devel] [PATCH 51/79] pc: Use \"min-[x]level\" on compat_props", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "qemu-stable@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "From: Eduardo Habkost <ehabkost@redhat.com>\n\nSince the automatic cpuid-level code was introduced in commit\nc39c0edf9bb3b968ba95484465a50c7b19f4aa3a (\"target-i386: Automatically\nset level/xlevel/xlevel2 when needed\"), the CPU model tables just define\nthe default CPUID level code (set using \"min-level\"). Setting\n\"[x]level\" forces CPUID level to a specific value and disable the\nautomatic-level logic.\n\nBut the PC compat code was not updated and the existing \"[x]level\"\ncompat properties broke compatibility for people using features that\ntriggered the auto-level code. To keep previous behavior, we should set\n\"min-[x]level\" instead of \"[x]level\" on compat_props.\n\nThis was not a problem for most cases, because old machine-types don't\nhave full-cpuid-auto-level enabled. The only common use case it broke\nwas the CPUID[7] auto-level code, that was already enabled since the\nfirst CPUID[7] feature was introduced (in QEMU 1.4.0).\n\nThis causes the regression reported at:\nhttps://bugzilla.redhat.com/show_bug.cgi?id=1454641\n\nChange the PC compat code to use \"min-[x]level\" instead of \"[x]level\" on\ncompat_props, and add new test cases to ensure we don't break this\nagain.\n\nReported-by: \"Guo, Zhiyi\" <zhguo@redhat.com>\nFixes: c39c0edf9bb (\"target-i386: Automatically set level/xlevel/xlevel2 when needed\")\nCc: qemu-stable@nongnu.org\nAcked-by: Michael S. Tsirkin <mst@redhat.com>\nSigned-off-by: Eduardo Habkost <ehabkost@redhat.com>\n(cherry picked from commit 1f43571604da85c62f25f3ba6d275b1b5ea76ca2)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>\n---\n include/hw/i386/pc.h | 42 +++++++++++++++++++++---------------------\n tests/test-x86-cpuid-compat.c | 38 ++++++++++++++++++++++++++++++++++++++\n 2 files changed, 59 insertions(+), 21 deletions(-)", "diff": "diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h\nindex f278b3a..564486f 100644\n--- a/include/hw/i386/pc.h\n+++ b/include/hw/i386/pc.h\n@@ -558,75 +558,75 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);\n .value = \"off\",\\\n },{\\\n .driver = \"qemu64\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(4),\\\n },{\\\n .driver = \"kvm64\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(5),\\\n },{\\\n .driver = \"pentium3\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(2),\\\n },{\\\n .driver = \"n270\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(5),\\\n },{\\\n .driver = \"Conroe\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(4),\\\n },{\\\n .driver = \"Penryn\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(4),\\\n },{\\\n .driver = \"Nehalem\" \"-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(4),\\\n },{\\\n .driver = \"n270\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Penryn\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Conroe\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Nehalem\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Westmere\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"SandyBridge\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"IvyBridge\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Haswell\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Haswell-noTSX\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Broadwell\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = \"Broadwell-noTSX\" \"-\" TYPE_X86_CPU,\\\n- .property = \"xlevel\",\\\n+ .property = \"min-xlevel\",\\\n .value = stringify(0x8000000a),\\\n },{\\\n .driver = TYPE_X86_CPU,\\\n@@ -852,7 +852,7 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);\n .value = stringify(2),\\\n },{\\\n .driver = \"Conroe-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(2),\\\n },{\\\n .driver = \"Penryn-\" TYPE_X86_CPU,\\\n@@ -860,7 +860,7 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);\n .value = stringify(2),\\\n },{\\\n .driver = \"Penryn-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(2),\\\n },{\\\n .driver = \"Nehalem-\" TYPE_X86_CPU,\\\n@@ -868,7 +868,7 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);\n .value = stringify(2),\\\n },{\\\n .driver = \"Nehalem-\" TYPE_X86_CPU,\\\n- .property = \"level\",\\\n+ .property = \"min-level\",\\\n .value = stringify(2),\\\n },{\\\n .driver = \"virtio-net-pci\",\\\ndiff --git a/tests/test-x86-cpuid-compat.c b/tests/test-x86-cpuid-compat.c\nindex 79a2e69..b449f54 100644\n--- a/tests/test-x86-cpuid-compat.c\n+++ b/tests/test-x86-cpuid-compat.c\n@@ -228,6 +228,44 @@ int main(int argc, char **argv)\n add_cpuid_test(\"x86/cpuid/auto-xlevel2/pc-2.7\",\n \"-machine pc-i440fx-2.7 -cpu 486,+xstore\",\n \"xlevel2\", 0);\n+ /*\n+ * QEMU 1.4.0 had auto-level enabled for CPUID[7], already,\n+ * and the compat code that sets default level shouldn't\n+ * disable the auto-level=7 code:\n+ */\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-1.4/off\",\n+ \"-machine pc-i440fx-1.4 -cpu Nehalem\",\n+ \"level\", 2);\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-1.5/on\",\n+ \"-machine pc-i440fx-1.4 -cpu Nehalem,+smap\",\n+ \"level\", 7);\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-2.3/off\",\n+ \"-machine pc-i440fx-2.3 -cpu Penryn\",\n+ \"level\", 4);\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-2.3/on\",\n+ \"-machine pc-i440fx-2.3 -cpu Penryn,+erms\",\n+ \"level\", 7);\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-2.9/off\",\n+ \"-machine pc-i440fx-2.9 -cpu Conroe\",\n+ \"level\", 10);\n+ add_cpuid_test(\"x86/cpuid/auto-level7/pc-i440fx-2.9/on\",\n+ \"-machine pc-i440fx-2.9 -cpu Conroe,+erms\",\n+ \"level\", 10);\n+\n+ /*\n+ * xlevel doesn't have any feature that triggers auto-level\n+ * code on old machine-types. Just check that the compat code\n+ * is working correctly:\n+ */\n+ add_cpuid_test(\"x86/cpuid/xlevel-compat/pc-i440fx-2.3\",\n+ \"-machine pc-i440fx-2.3 -cpu SandyBridge\",\n+ \"xlevel\", 0x8000000a);\n+ add_cpuid_test(\"x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-off\",\n+ \"-machine pc-i440fx-2.4 -cpu SandyBridge,\",\n+ \"xlevel\", 0x80000008);\n+ add_cpuid_test(\"x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-on\",\n+ \"-machine pc-i440fx-2.4 -cpu SandyBridge,+npt\",\n+ \"xlevel\", 0x80000008);\n \n return g_test_run();\n }\n", "prefixes": [ "51/79" ] }