[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC 02/10] x86/hvm: separate AMD-V and Intel VT-x hvm_function_table initializers


  • To: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 13 Feb 2023 17:47:22 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.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=MdrJ9L61zZ0PMSNiVVDrrcsKMclEyt21jp6M+ePmhk4=; b=gwjh3i/tUmPcOWFbqaIENUMU9l7q1ViO/nFBTNETksAoHgy/cHIXNpM9morfIyzTQ/LNjICQPvfbTUualrM338fYbKdCv3YH6CwchPgM9jyLeqJR+lnxQAs7o89PiWzBa7Ib/S6SVOYyW1TVaj3Q9VaWyFvcqTGPOkvk6gW1KlhPtrfOwd+J3wMaCf1QjgNTiuqAiKD2FSLXhP7Iv3KN/HZA0PnAbEw7Jx5Ieg/Byd+KIVXUWIQSDX7p+taXfbyvEF0awmLfBmSYR7UJ4kiUAW3LfLabb5V8u0VHtnNw3NjV7skcAMxDoMrksDEgsztit63Iq1LkfSNGCuLc+iyt0w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNI/oJCSxT6OmpDu2RWmfPEDG1QlAgbnaxDUTQUJVFEkWY8NcZA9rvrDC/nynup+g7Hb1scCmJwaek00i7cqGelUu1qS1Cuy3kVEJyJkgc6UBKeO2hP2SmT0Jyvu4G+8tMv3A1JBPqXVkCHxQrKc8NZzLYmGzTjWuk5ZGpCR+b9QdzcNuLgb22mmDiTJN4IxjQHfm/T9B776RTwks/l1m4IwXaak//4dCUzN+LidlvLLRHo3CF0aA5A2O3P4zmnb0JCtE9Agh6/V6Zho3b1yGdOf2T++FmSJ8+Rh9JB0iOXKYOybcLvz2kOTj+04n+EJi3Uk+I4rUBrAnceBxB59Ww==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 13 Feb 2023 16:48:11 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 13.02.2023 15:57, Xenia Ragiadakou wrote:
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -261,8 +261,16 @@ extern struct hvm_function_table hvm_funcs;
>  extern bool_t hvm_enabled;
>  extern s8 hvm_port80_allowed;
>  
> +#ifdef CONFIG_AMD_SVM
>  extern const struct hvm_function_table *start_svm(void);
> +#else
> +static inline const struct hvm_function_table *start_svm(void) { return 
> NULL; }
> +#endif
> +#ifdef CONFIG_INTEL_VMX
>  extern const struct hvm_function_table *start_vmx(void);
> +#else
> +static inline const struct hvm_function_table *start_vmx(void) { return 
> NULL; }
> +#endif
>  
>  int hvm_domain_initialise(struct domain *d,
>                            const struct xen_domctl_createdomain *config);

Instead of this (which I consider harder to read), may I suggest

    if ( IS_ENABLED(CONFIG_VMX) && cpu_has_vmx )
        fns = start_vmx();
    else if ( IS_ENABLED(CONFIG_SVM) && cpu_has_svm )
        fns = start_svm();

in hvm_enable() instead (with DCE taking care of removing the dead
calls)?

Jan



 


Rackspace

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