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

Re: [PATCH v3 05/14] x86/svm: move nestedsvm declarations used only by svm code to private header


  • To: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 24 Feb 2023 20:34:13 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=QRujyF0JhVHzl3GY5yu72FcWYlEWv2Lil7clkS54Ypo=; b=lnKEc9d7lZvadZrrkHLnWm+QjjGFTndTmA0GrNOUpCDP564iDYcwYHV3IF+Cb5eJQFOw8tcbJO2slENyrCsVZ8aWmkcqRygqJ2Ec1dJgBNY7sc/CD2uqHhk16I3qs+iZwdVXlGoBxOBGYBCnRpnnrno028GheCoWRQmdCxVxAnHgGMBE7gZgGpu4zNWifxhRGrBDqy3oA8VkBWH7uuFQy7LRROVttDmWDnAlvkHISTiwaaMonXXDhNIYskatlOLa1yrfW7/ru1GuWFm9ZCZluM7VIIzAL3H+zgVWKkRjn7h65JkA47l0YX2HxwpgfBPbaPPYKVd4Pdx37q4KaYrKZg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DTXF8CX/a2TkkEeYnWhKJTNRfR9boGD6P0py9KcYlwooRuIc/9DRu8kDH2Mj8TnfhIRloqJ0Ft7ZD4id6CfYnkRmIbuzV8qqvjHtWL5J+DzF+LFs3H5Xsi02oofcXxAUM4OHC4ZPBuHQZyF24ck/Dlp4vJ5E39eCYi/jiSjMJxkky2E/4TkgHOFdzaXLNGaR65FpcOgqtvwwz6wKG0kjmmyyJM5pjmzs1PK4ahK6U8i8tiei6O0k8CyEpqnC/bOXL5Z0loXVmKLFfCQ4fLUBjwWeYfECXbQGin/FSkx1sEGjL468ioGpa8sgLONjyfwKAT4++6TPZghCjCh362CaXQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Fri, 24 Feb 2023 20:34:43 +0000
  • Ironport-data: A9a23:kJmllqOwA7kQwZrvrR2dlsFynXyQoLVcMsEvi/4bfWQNrUohhTYHy 2QeXmvUPPiINGP2eIgjOdvj9BsDvMDRzIcxHAto+SlhQUwRpJueD7x1DKtS0wC6dZSfER09v 63yTvGacajYm1eF/k/F3oDJ9CU6jufQAOKnUoYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/ Nj/uKUzAnf8s9JPGj9Suv3rRC9H5qyo42tC5ABmPpingXeF/5UrJMNHTU2OByOQrrl8RoaSW +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0uV2X0thr /VBFCkQRQnAmPKS5OiqFfY506zPLOGzVG8ekldJ6GiDSNMZG9XESaiM4sJE1jAtgMwIBezZe 8cSdTtoalLHfgFLPVAUTpk5mY9EhFGmK2Ee9A3T+/Rxvze7IA9ZidABNPL8fNCQSNoTtUGfv m/cpEzyAw0ANczZwj2Amp6prr6fzXynAN9MfFG+3uFninaV7T06NDE5C1Tn+tCnqkK3RfsKf iT4/QJr98De7neDRMTnTRS8p3KDoRc0VN9ZEul84waIooLE7gDcCmUaQzppbN09qNRwVTEsz kWOnd7iGXpoqrL9YXCX+6qQrDiyETMINmJEbigBJSMa5/HzrYd1iQjAJuuPC4awh9zxXDTvm TaDqXFkg61J1ZJUkaKm4VrAnjSg4IDTSRI47RnWWWTj6R5lYImiZMqj7l2zAet8Ebt1h2Kp5 BAs8/VyJshXZX1RvERhmNkwIYw=
  • Ironport-hdrordr: A9a23:mN+J+69KNRrEUenr/+Ruk+DxI+orL9Y04lQ7vn2ZKCYlEfBw8v rFoB1173TJYVoqNU3I+urhBEDjex3hHPdOiOEs1NGZMDUO01HIEGgN1+Tf6gylNyf+8NRc26 AlWK5jD9f9ZGIK7/rS0U2VGdcn+tmI9+SUiePGyn9xQWhRGsRd0zs=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 24/02/2023 8:28 pm, Xenia Ragiadakou wrote:
>
> On 2/24/23 22:12, Andrew Cooper wrote:
>> On 24/02/2023 6:50 pm, Xenia Ragiadakou wrote:
>>> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h
>>> b/xen/arch/x86/hvm/svm/nestedhvm.h
>>> new file mode 100644
>>> index 0000000000..43245e13de
>>> --- /dev/null
>>> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
>>> @@ -0,0 +1,77 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +/*
>>> + * nestedsvm.h: Nested Virtualization
>>> + *
>>> + * Copyright (c) 2011, Advanced Micro Devices, Inc
>>> + */
>>> +
>>> +#ifndef __X86_HVM_SVM_NESTEDHVM_PRIV_H__
>>> +#define __X86_HVM_SVM_NESTEDHVM_PRIV_H__
>>> +
>>> +#include <xen/mm.h>
>>> +#include <xen/types.h>
>>> +
>>> +#include <asm/hvm/vcpu.h>
>>> +#include <asm/hvm/hvm.h>
>>> +#include <asm/hvm/nestedhvm.h>
>>> +#include <asm/msr-index.h>
>>> +
>>> +/* SVM specific intblk types, cannot be an enum because gcc 4.5
>>> complains */
>>> +/* GIF cleared */
>>> +#define hvm_intblk_svm_gif      hvm_intblk_arch
>>
>> I know you're just moving code, but I simply don't believe this comment.
>>
>> This additional delta seems to compile fine:
>>
>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
>> index dbb0022190a8..111b10673cf4 100644
>> --- a/xen/arch/x86/hvm/svm/intr.c
>> +++ b/xen/arch/x86/hvm/svm/intr.c
>> @@ -154,7 +154,7 @@ void svm_intr_assist(void)
>>               return;
>>             intblk = hvm_interrupt_blocked(v, intack);
>> -        if ( intblk == hvm_intblk_svm_gif )
>> +        if ( intblk == hvm_intblk_arch ) /* GIF */
>>           {
>>               ASSERT(nestedhvm_enabled(v->domain));
>>               return;
>> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h
>> b/xen/arch/x86/hvm/svm/nestedhvm.h
>> index 43245e13deb7..c7747daae24a 100644
>> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
>> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
>> @@ -16,10 +16,6 @@
>>   #include <asm/hvm/nestedhvm.h>
>>   #include <asm/msr-index.h>
>>   -/* SVM specific intblk types, cannot be an enum because gcc 4.5
>> complains */
>> -/* GIF cleared */
>> -#define hvm_intblk_svm_gif      hvm_intblk_arch
>> -
>>   #define vcpu_nestedsvm(v) (vcpu_nestedhvm(v).u.nsvm)
>>     /* True when l1 guest enabled SVM in EFER */
>> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c
>> b/xen/arch/x86/hvm/svm/nestedsvm.c
>> index 92316c6624ce..1794eb2105be 100644
>> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
>> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
>> @@ -1247,7 +1247,7 @@ enum hvm_intblk cf_check nsvm_intr_blocked(struct
>> vcpu *v)
>>       ASSERT(nestedhvm_enabled(v->domain));
>>         if ( !nestedsvm_gif_isset(v) )
>> -        return hvm_intblk_svm_gif;
>> +        return hvm_intblk_arch;
>>         if ( nestedhvm_vcpu_in_guestmode(v) )
>>       {
>>
>>
>> but the first hunk demonstrates an error in the original logic.
>> Architecturally, GIF can become set for SKINIT, and in systems where SVM
>> isn't available.
>>
>> I'm unsure whether its better to fix this up in this patch, or defer it
>> for later.
>
> I think this change merits its own patch.

Yeah, it probably does.

Seeing as you've reviewed my two alt patches, I'll commit some more as
I've already resolved the conflicts around adjacent headers.

~Andrew



 


Rackspace

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