[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
- To: Jane Malalane <jane.malalane@xxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>
- From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- Date: Tue, 26 Jul 2022 19:31:33 -0400
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=b6wO/3pdjGedZMm568xlqM2fZJwXioknbMs8JiVAnn0=; b=Tw99YD/ZMNKXaDiFzBMI3tBAjrPS6qOqJTHweiPqxapiO3ra7NY1IQVb+onptM0/NXYNZgA2EmaLgM3MeyHWD2Df0LmyWY/MEtNaJq2emvp2M50bglGWUV8ZSTFg7WiqF+SIdqgVjQJXsa2sGW9fDcQ9SAkgxs4vz/HF8kZoLiushu0cg6zvYlcM1Rdt56sJ9HCVw+8lFFhQzFqHQdTWTDNCBZ6PVS1KX9yYeu0u8BxSVH3iibcBup8rH+ke++ow+hyStFvM5hw/iEQ2mVpOm4ZiaWO2fPtqMWC+KoE+SG5/QJh2SLOR7l1bskf2UjYjFF/VfqGziRr1QVAemZDGyw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M+2X0JzZzsnHRHgXINMMFFu6uo//+HMRucI6ZhjmwWI4t2Vuvlw2FjjRz6JHSUf1TviYx4QBBPLqvz9QlpxfvL+H5DQEzvN98Oth5X+04dHPpzh2ZemgzpcwyuNyLyloI7fj5+NCiIS0lTVESGW4iOJ11dZo7osI8RJ8obZFaaWGBC1g2Zb/NSuNkxyZ42hnNtT9vB9OXPVEn4qXsdDMNcaiNvsYLo1qZ3bgZwbVTIT0QBUmKle/4VTGo+5XmRuBETgepR/eu9+hg7POG7hO3DgVFtqtnm9SEOU0U6OEspM6dpr4hvACNwBBtw4YBZwniuctyNvSEt5LfcDAhAth6Q==
- Cc: Juergen Gross <jgross@xxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, x86@xxxxxxxxxx, "H. Peter Anvin" <hpa@xxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, Maximilian Heyne <mheyne@xxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Colin Ian King <colin.king@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- Delivery-date: Tue, 26 Jul 2022 23:33:40 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 7/26/22 8:56 AM, Jane Malalane wrote:
+/* Setup per-vCPU vector-type callbacks and trick toolstack to think
+ * we are enlightened. If this setup is unavailable, fallback to the
+ * global vector-type callback. */
Comment style.
+static __init void xen_init_setup_upcall_vector(void)
+{
+ unsigned int cpu = 0;
Unnecessary variable.
+
+ if (!xen_have_vector_callback)
+ return;
+
+ if ((cpuid_eax(xen_cpuid_base() + 4) & XEN_HVM_CPUID_UPCALL_VECTOR) &&
+ !xen_set_upcall_vector(cpu) && !xen_set_callback_via(1))
+ xen_percpu_upcall = true;
+ else if (xen_feature(XENFEAT_hvm_callback_vector))
+ xen_setup_callback_vector();
+ else
+ xen_have_vector_callback = false;
+}
+
+int xen_set_upcall_vector(unsigned int cpu)
+{
+ int rc;
+ xen_hvm_evtchn_upcall_vector_t op = {
+ .vector = HYPERVISOR_CALLBACK_VECTOR,
+ .vcpu = per_cpu(xen_vcpu_id, cpu),
+ };
+
+ rc = HYPERVISOR_hvm_op(HVMOP_set_evtchn_upcall_vector, &op);
+ if (rc)
+ return rc;
+
+ if (!cpu)
A comment (e.g. "Let toolstack know that we are enlightened." or something
along these lines) would be useful here.
-boris
+ rc = xen_set_callback_via(1);
+
|