[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);
+



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.