{"id":2198175,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2198175/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","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":""},"msgid":"<20260219054207.471303-6-manali.shukla@amd.com>","date":"2026-02-19T05:42:04","name":"[v1,5/8] i386/kvm: Add extended LAPIC capability negotiation","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"545b7017bfc0303bcdb97482336cfdde472d4bd5","submitter":{"id":90099,"url":"http://patchwork.ozlabs.org/api/1.0/people/90099/?format=json","name":"Manali Shukla","email":"manali.shukla@amd.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260219054207.471303-6-manali.shukla@amd.com/mbox/","series":[{"id":492683,"url":"http://patchwork.ozlabs.org/api/1.0/series/492683/?format=json","date":"2026-02-19T05:42:03","name":"i386/kvm: Add support for extended APIC register space","version":1,"mbox":"http://patchwork.ozlabs.org/series/492683/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2198175/checks/","tags":{},"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256\n header.s=selector1 header.b=HutOtLXZ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGw1W6s5Wz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 20 Feb 2026 00:57:35 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vt4VO-0007RX-Gu; Thu, 19 Feb 2026 08:55:46 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Manali.Shukla@amd.com>)\n id 1vswpF-0006MJ-8H\n for qemu-devel@nongnu.org; Thu, 19 Feb 2026 00:43:45 -0500","from mail-westusazlp170120002.outbound.protection.outlook.com\n ([2a01:111:f403:c001::2] helo=SJ2PR03CU001.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Manali.Shukla@amd.com>)\n id 1vswpD-0007jK-Hd\n for qemu-devel@nongnu.org; Thu, 19 Feb 2026 00:43:44 -0500","from SJ0PR13CA0002.namprd13.prod.outlook.com (2603:10b6:a03:2c0::7)\n by BN3PR12MB9593.namprd12.prod.outlook.com (2603:10b6:408:2cb::11)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Thu, 19 Feb\n 2026 05:43:38 +0000","from SJ1PEPF00001CDC.namprd05.prod.outlook.com\n (2603:10b6:a03:2c0:cafe::bc) by SJ0PR13CA0002.outlook.office365.com\n (2603:10b6:a03:2c0::7) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.15 via Frontend Transport; Thu,\n 19 Feb 2026 05:43:37 +0000","from satlexmb07.amd.com (165.204.84.17) by\n SJ1PEPF00001CDC.mail.protection.outlook.com (10.167.242.4) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9632.12 via Frontend Transport; Thu, 19 Feb 2026 05:43:37 +0000","from brahmaputra.amd.com (10.180.168.240) by satlexmb07.amd.com\n (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb\n 2026 23:43:33 -0600"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=wgJC3bO7chg5SDF4JQxVzd27Jn3FF73Z6z/JWnR9DuMFPKkxsJpo8FMhb8VbDiZ75Gt1LylmsUuYRmq8BbaTxmIBx9Cps+h8mrILBcmy851aTvPWSaUojf+uQvQ0NJC+1b02eF9XujxJeCnt1plKhu6FTwFkplXiKfLAOVyRgjtnbYeMSqI8W6sx+rsx4bzMOvg5/yYQW6YNVmLwcGfKYrOoO5w/0enRkv4ozBPAS3lUQA602CzOyDPaIqhb/yPfBU1doUgfiBoSAhFr24DAHXuHSMrQwb6GhollLpPn9AA9tdjJTVSjd2AgZXLqYg0/z0nAOZ/HwmgImsFP4X7XkA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=bVaeOsMTf2qFffutIlkHnH6jX3KJxkPdN0qcWyPMKIQ=;\n b=HCxXc5N414PvnrWJTIMSyIcRFKcKIdG/VTcUIvsiz3aGd3bFXnFJ7n1mtxF82MK1W62d3GQPt03GyU5u8gTdj/QyyAZDKHq2Mewz6txK89fs3bKy3YkXi39fYYeMKCfG+eUm4bQvrSNs+yOCl2QQrU352zzZX/Zs9I3CjqZoTOPOCFxrsltRRtEUcKhyXRlaMAFhzwelFTQ81GEMHKGX718KurLuJE2eQmNYVHNqXj+Sn5Aq8t1Z/ObD0dxEyBnyeX1iaQB3XoK82D5XzS6vvyktTnfgzY/G8p3jzUhuHkx4xgyBWuHqrjllwWCH4smLTsF/zQoONamYonx1OaiOMQ==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=nongnu.org smtp.mailfrom=amd.com; dmarc=pass\n (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;\n dkim=none (message not signed); arc=none (0)","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=bVaeOsMTf2qFffutIlkHnH6jX3KJxkPdN0qcWyPMKIQ=;\n b=HutOtLXZJJhNQ/dkVt7o8OiXz/ykz+nx5GKL9uf0BXZYGGtJyQxZ0DAD63w/mZWcLOvmoPOJQ/94GjmNh6KMxE6xDy9jwPthnLZ2ChryAApKylryG2rlrqMIotLBzHixmd9I6Mn+CfJ8dTDY/JH5IjVRFGktpZBQIPtTYg2oX5g=","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;","Received-SPF":["Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C","permerror client-ip=2a01:111:f403:c001::2;\n envelope-from=Manali.Shukla@amd.com;\n helo=SJ2PR03CU001.outbound.protection.outlook.com"],"From":"Manali Shukla <manali.shukla@amd.com>","To":"<qemu-devel@nongnu.org>","CC":"Cornelia Huck <cohuck@redhat.com>, Eduardo Habkost <eduardo@habkost.net>,\n <kvm@vger.kernel.org>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n \"Marcelo Tosatti\" <mtosatti@redhat.com>, \"Michael S . Tsirkin\"\n <mst@redhat.com>, \"Paolo Bonzini\" <pbonzini@redhat.com>, Sean Christopherson\n <seanjc@google.com>, Richard Henderson <richard.henderson@linaro.org>, Naveen\n N Rao <naveen@kernel.org>, Nikunj Dadhaniya <nikunj@amd.com>,\n <manali.shukla@amd.com>","Subject":"[PATCH v1 5/8] i386/kvm: Add extended LAPIC capability negotiation","Date":"Thu, 19 Feb 2026 05:42:04 +0000","Message-ID":"<20260219054207.471303-6-manali.shukla@amd.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260219054207.471303-1-manali.shukla@amd.com>","References":"<20260219054207.471303-1-manali.shukla@amd.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-Originating-IP":"[10.180.168.240]","X-ClientProxiedBy":"satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com\n (10.181.42.216)","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"SJ1PEPF00001CDC:EE_|BN3PR12MB9593:EE_","X-MS-Office365-Filtering-Correlation-Id":"2c23b9ed-5e0b-48f9-7394-08de6f79d44a","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|36860700013|82310400026|7416014|376014|1800799024;","X-Microsoft-Antispam-Message-Info":"\n wAVn2Q75vuEB3PfmhLT1E0Gw07ps85Dy0cor4/br+gM9GWEl0WZVzbM54QY/UbjL9AR1nC/tK6l4IdtfexUBXweBoe2YVJ+9S/55fLcfC8zEGe8o8LTg/UuKBWxbTMxYTBtDkRrasl+IK3eRyZ/J5LDfwZv70jqgT3zFE22PdaS1OgTDfMKYus8mpbIW4qbmflLTAAhNNCQMS6yzOXMljh9PTcu8+kex07bf+X2ajPCA8aMlESMgvr+APjzBWLqHzHbsnqA68vtDOxeSYTl28F4lYG9jzvS2kchorp+9YQCiZo9Fy5CV1/0wWGQAhwlxVm+u8xZF4xq2sOlEglwO5HBq1cBMXDR7gCo3bA8c3pZ1q4H/e+BquuFikhZlmr/R+U20pdLYY0N3c9JfutvWuaL6LfZjeo++OyexxYxqmHMNTs6uReRBhAK/qliQ35RXozEkJrC6zkuZbYHDiHBq0+G+G1HM9B9MCuZE+Mk1xw9s1q/gS6eIYLtdHkone2nv/JTcsqpSIJdcQ07UbdXdYzUtRoyu4NnJNGijFDenbhoFX1Ck+qDGb0DEmJvumAE1wpk7O3bZfU14dQLxfTpzxoWUf6aA8aveXXgxXhSWlr1NGk3X/nJcwNyr9fD4Ddd1LoM1k6qc0t5XHI3Toi4199wYL7sfXE96KanO+IpfBxX9M7Gzutq9CagB/GS3wJj8HLmKXL1DfMVcrOHEkSw3YryuAzjPe4Manj15Ch6uEGE3xf0vMa7Csxo0sGkPVw8YevjyWFEJliiI8jL0PzhjphP+diCjmEOoVcDE4oFAuP2THg5dsaQmMSTbbFM4aL+sSnQizn3Pf+mdr+hTsAXcUen843F6br2PnAtkapxt+zZ5fzs+aCMTY8m51rdZPHdmDAHdVX1VgpN0nWmn3RPxSwFenjq6LaWUeOh0MRCp+tVM/kmBK9EJk0S+WByzl5pX9vcKNE6P31FJG6sF+lJNRfENg4s1ATIBAonxuz08CwAVoJ6glbbuk7Ig/yUDa0NCJQS24+5+z54XBu9INA8KKJeWrUtzEetkGMqfujzbKU0JERHzqqixjV46gXImgCGK9SSXqT/5K+e32gdAIUaDWbfIbTEgaKD7Mgtssbql9U0aOMNKjLYlEcZ2bQVMwPmuyEcOb4wvOKH11/7Hm0jNCwxGEvZs+E8/n0qB2nQe7eLvVsOXOTwSLd0xWTLqCv9mW2QpT00MMb6o1/nNAMQudegrpMTV2NSaTluS+aISbVCx1r0+bARpQ3GIG5WdNVt/Bzf49W+jWlSWju/52cZxMSmO/uPYycgL2hDhtgHdT8PMQd5RlxBJl8/dPmU1pPKrLZMmEYpUbhdHaz/FypRm8mHCnQLib/+jT/zFQ2+mlT1M8OCnxzRvQXXiAdtq7v9riFaMd2rPFBHBURg3QVrNWYIHtlVAhWwnwuCBCel63hPj02z+sA+b/8UUDGOLB1XJJXoteEdEtnyamlmNyfFoDDPW2QZiy8iJyeoDV+P79rT6mB48Qgxrc7cH7CjuexjSWffb0/sIwc8WJEeEtBGCUfEB+qnnPbCwbdHGgAx1T7lJNKK1G0y1fcKJMF+01KaziJz2hon8+zY2MUuvKADEiGMBRAUqmUScca3d9UyqVTH/G7pfRAfFVmdC2F6AtzajufUEOOCf2+0gc7/anF9DWw==","X-Forefront-Antispam-Report":"CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:satlexmb07.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);\n DIR:OUT;\n SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n 6S5b77mU/h+jSSWI6uA0NPKWzhAzG8qArDkzQ4+0w16QKxq3YAAw9xn8y2WTDH0ASRoq1hMz8fQAjTxfEU43CTJTag4UAuFN8ETB9xa/MuRLgNKo0MP3LGdCRYKcX37EM3vLcbxnBiG+N13hyKaxEt80WlAIFYb+0YTClPGFCGJ5I3Idob+tlhGPo2d8Pjvcu8RF3uqyh0m9UginNGPGsMpkMSLL2S1uALHsfXWa/9l3nJCUeH3IR50404yKnDI15GUZOGQl0WEx7EwFsfsRw7zBgtGdhymGgsPLOt+aQ0MMH+QFpFL5PQHbijKKtSDUHr4xw7WsTjxTfzMiim2OaLtHhoJEJ3/W5+XcepMUy7LEz7/JNRnvMuQNrf91CcRMbxtJerF1NN+v0l19aOtcWBq/lWXblWN7+bsigxbjEwlzRnWRA9Som+SmulK65jmY","X-OriginatorOrg":"amd.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"19 Feb 2026 05:43:37.5204 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 2c23b9ed-5e0b-48f9-7394-08de6f79d44a","X-MS-Exchange-CrossTenant-Id":"3dd8961f-e488-4e60-8e11-a82d994e183d","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[satlexmb07.amd.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n SJ1PEPF00001CDC.namprd05.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"BN3PR12MB9593","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.043,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-Mailman-Approved-At":"Thu, 19 Feb 2026 08:55:34 -0500","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://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 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Negotiate KVM_CAP_LAPIC2 during vCPU pre-creation.  Enable\nKVM_LAPIC2_DEFAULT for the 4KB APIC page.  If the CPU has\nExtApicSpace (arch_has_extapic()), also enable KVM_LAPIC2_AMD_DEFAULT\nand use the intersection of what host and guest support.\n\nUse a VM-wide has_lapic2 flag so the capability is enabled once on the\nfirst vCPU and reused for the rest.  When extended APIC is supported on\nboth host and guest, set has_extapic for use when syncing extended APIC\nregisters with KVM.  Allocate extended LVT state in\nkvm_initialize_extlvt() during pre-creation and free it in\nkvm_uninitialize_extlvt() on vCPU destroy.\n\nSuggested-by: Naveen N Rao (AMD) <naveen@kernel.org>\nSigned-off-by: Manali Shukla <manali.shukla@amd.com>\n---\n target/i386/kvm/kvm.c      | 61 +++++++++++++++++++++++++++++++++++++-\n target/i386/kvm/kvm_i386.h |  2 ++\n 2 files changed, 62 insertions(+), 1 deletion(-)","diff":"diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c\nindex ea22aa7180..c9f4cb6430 100644\n--- a/target/i386/kvm/kvm.c\n+++ b/target/i386/kvm/kvm.c\n@@ -177,6 +177,8 @@ static int has_exception_payload;\n static int has_triple_fault_event;\n \n static bool has_msr_mcg_ext_ctl;\n+static bool has_lapic2;\n+static bool has_extapic;\n \n static struct kvm_cpuid2 *cpuid_cache;\n static struct kvm_cpuid2 *hv_cpuid_cache;\n@@ -2064,13 +2066,69 @@ full:\n     abort();\n }\n \n+bool kvm_has_lapic2(void)\n+{\n+    return has_lapic2;\n+}\n+\n+bool kvm_has_extapic(void)\n+{\n+    return has_extapic;\n+}\n+\n+static int kvm_enable_extapic(X86CPU *cpu)\n+{\n+    KVMState *s = KVM_STATE(current_accel());\n+    uint64_t kvm_cap, vm_cap, final_cap;\n+    uint8_t nr_extlvt = 0;\n+    int ret;\n+\n+    if (!s) {\n+        error_report(\"KVM accelerator is not available\");\n+        return -ENODEV;\n+    }\n+\n+    if (!has_lapic2) {\n+        kvm_cap = kvm_check_extension(s, KVM_CAP_LAPIC2);\n+        if (!kvm_cap) {\n+            return 0;\n+        }\n+\n+        vm_cap = KVM_LAPIC2_DEFAULT;\n+        if (arch_has_extapic(cpu)) {\n+            vm_cap |= KVM_LAPIC2_AMD_DEFAULT;\n+        }\n+\n+        final_cap = kvm_cap & vm_cap;\n+        ret = kvm_vm_enable_cap(s, KVM_CAP_LAPIC2, 0, final_cap);\n+\n+        if (ret < 0) {\n+            error_report(\"kvm: Failed to enable EXTAPIC\");\n+            return -ENOTSUP;\n+        }\n+\n+        has_lapic2 = true;\n+        if (final_cap & KVM_LAPIC2_AMD_DEFAULT) {\n+            nr_extlvt = KVM_X86_NR_EXTLVT_DEFAULT;\n+            has_extapic = true;\n+        }\n+    }\n+\n+    if (nr_extlvt > 0) {\n+        kvm_initialize_extlvt(cpu, nr_extlvt);\n+    }\n+    return 0;\n+}\n+\n int kvm_arch_pre_create_vcpu(CPUState *cpu, Error **errp)\n {\n     if (is_tdx_vm()) {\n         return tdx_pre_create_vcpu(cpu, errp);\n     }\n \n-    return 0;\n+    X86CPU *cs = X86_CPU(cpu);\n+\n+    return kvm_enable_extapic(cs);\n }\n \n int kvm_arch_init_vcpu(CPUState *cs)\n@@ -2399,6 +2457,7 @@ int kvm_arch_destroy_vcpu(CPUState *cs)\n     g_free(env->nested_state);\n     env->nested_state = NULL;\n \n+    kvm_uninitialize_extlvt(cpu);\n     qemu_del_vm_change_state_handler(cpu->vmsentry);\n \n     return 0;\ndiff --git a/target/i386/kvm/kvm_i386.h b/target/i386/kvm/kvm_i386.h\nindex 338433eb52..b28fed69d8 100644\n--- a/target/i386/kvm/kvm_i386.h\n+++ b/target/i386/kvm/kvm_i386.h\n@@ -25,6 +25,8 @@\n     (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())\n \n bool kvm_has_smm(void);\n+bool kvm_has_extapic(void);\n+bool kvm_has_lapic2(void);\n bool kvm_enable_x2apic(void);\n bool kvm_hv_vpindex_settable(void);\n bool kvm_enable_hypercall(uint64_t enable_mask);\n","prefixes":["v1","5/8"]}