[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC 0/9] x86: Merge cpuid and msr policy
- To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- Date: Mon, 3 Apr 2023 12:48:49 +0100
- 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=NF/0VHEKmXlSYyf2iV8XQgfO8qTiuqIbt5+2xRqLfYw=; b=aILlJcOeX/72IpWXPcbM8ucJrpY9xgeCuO9DwF9xvnZ9CFGMYLIEbV7sEUB+jyv7z3zNKa8PGYs1VQft3dCepLzGhGprHWLc/sBUjYU4lWXS7Z07A97dykDITvayNn4Fb1bGY9CpFhyCjWE0s8Gt1DJoQ+SgKwA948zrMGWTz3tRxxZMHZLWY5W/ag6MnP1WVgA2vpw+tHIJhbgiXCQjGXo+SCoMN4rY4s7DBo6mvGrGQLUHOMhWOiZ1PdB/VgdjiHkTI//k5zcvk2XRMXYORGmLXGxQBphTtRKgCBwMKvUFBTzgOQ4Z2rkg3E/tH6MIzDqgsBVPpSltQ5cc2ADTtg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aw4KEYrQI5uvc5mTxz77tYbItzblEfPXPZSnBHSWzxR72M2YD/iVQM1DlzoPOMEccewaZvSZoWTNZamliB8Y9MklAtXuPAcIE1bgUQ+YvACwIibvTUZUwoPYVSppKrFKl3pth2PqxzraM77N1huArjpiD/J6Df83opSCUoQgJxEL/r5ZG9eIdNDJCsv1WYAQ+54KJ5Y6MQSAe/jJPfF0oi3uz18l32dCM/hYsyA0p7QvTf5+X20w3348cFOxNgPfA0juMaUS8pfeunQz8pp/fXgXc2vWzd8ff7RL6mpfNZgX8t74dwFR6N0haBX2XPBpAH0XVQUO9wO3OQzeu+0VYQ==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxx>, Wei Liu <wl@xxxxxxx>
- Delivery-date: Mon, 03 Apr 2023 11:49:08 +0000
- Ironport-data: A9a23:QinEg69Q/NogbZ5aysA6DrUDrX+TJUtcMsCJ2f8bNWPcYEJGY0x3z modUDvXbqrcMWWgKI90Ptm08UgAvZfSzIJqGVA4qy88E34SpcT7XtnIdU2Y0wF+jCHgZBk+s 5hBMImowOQcFCK0SsKFa+C5xZVE/fjUAOG6UKicYXoZqTZMEE8JkQhkl/MynrlmiN24BxLlk d7pqojUNUTNNwRcawr40Ire7kI/1BjOkGlA5AdmOagQ5Aa2e0Q9V/rzG4ngdxMUfaEMdgKKb 76r5K20+Grf4yAsBruN+losWhRXKlJ6FVHmZkt+A8BOsDAbzsAB+v9T2M4nQVVWk120c+VZk 72hg3ASpTABZcUgkMxFO/VR/roX0aduoNcrKlDn2SCfItGvn9IBDJyCAWlvVbD09NqbDkkJ3 s4ZEmgqYSu/xPiZ57KFRO01pYcKeZyD0IM34hmMzBn/JNN/GdXvZvuP4tVVmjAtmspJAPDSI dIDbiZiZwjBZBsJPUoLDJU5n6GjgXyXnz9w8QrJ4/ZopTWDilUpj9ABM/KMEjCObexTklyVu STt+GPhDwtBHNee1SCE4jSngeqncSbTAdpMSebkpqM26LGV7nU8KQI5W2r4nemoo16je5VbD R0axTV7+MDe82TuFLERRSaQsHOC+xIRRddUO+k78x2WjLrZ5R6DAWoJRSIHb8Yp3OcUbzE30 l6Cn/vyGCdi9raSTBq16bO8vT60fy8PIgc/iTQsSAIE55zvpd81hxeWFtJ7Svft0ZvyBC36x C2MoG4mnbIPgMUX1qK9u1fanzaroZuPRQkwjunKYl+YAspCTNbNT+SVBZLztJ6s8K7xooG9g UU5
- Ironport-hdrordr: A9a23:JbYOwq9OQVtYB+pJ0G5uk+AcI+orL9Y04lQ7vn2ZKSY5TiX4rb HKoB1/73XJYVkqN03I9ervBEDiewK/yXcW2+ks1N6ZNWGLhILBFupfBODZsl7d8kPFl9K01c 1bAtJD4N+bNykGsS4tijPIb+rJw7O8gd+Vbf+19QYIcenzAZsQlzuQDGygYypLbTgDP7UVPr yG6PFKojKxEE5nFfhSVhE+Lo7+T8SgruOeXSI7
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 03/04/2023 12:47 pm, Roger Pau Monné wrote:
> On Mon, Apr 03, 2023 at 11:55:57AM +0100, Andrew Cooper wrote:
>> On 30/03/2023 3:43 pm, Roger Pau Monné wrote:
>>> On Thu, Mar 30, 2023 at 01:59:37PM +0100, Andrew Cooper wrote:
>>>> On 30/03/2023 12:07 pm, Roger Pau Monné wrote:
>>>>> On Wed, Mar 29, 2023 at 09:51:28PM +0100, Andrew Cooper wrote:
>>>>>> But this does mean that we now have
>>>>>>
>>>>>> cpu_policy->basic.$X
>>>>>> cpu_policy->feat.$Y
>>>>>> cpu_policy->arch_caps.$Z
>>>>> I'm not sure I like the fact that we now can't differentiate between
>>>>> policy fields related to MSRs or CPUID leafs.
>>>>>
>>>>> Isn't there a chance we might in the future get some name space
>>>>> collision by us having decided to unify both?
>>>> The names are chosen by me so far, and the compiler will tell us if
>>>> things actually collide.
>>>>
>>>> And renaming the existing field is a perfectly acceptable way of
>>>> resolving a conflict which arises in the future.
>>>>
>>>> But yes - this was the whole point of asking the question.
>>> I think I would prefer to keep the cpu_policy->{cpuid,msr}.
>>> distinction if it doesn't interfere with further work.
>> Unfortunately that's the opposite of what Jan asked for. What I have
>> done, based on the prior conversation is:
>>
>> struct arch_domain {
>> ...
>>
>> /*
>> * The domain's CPU Policy. "cpu_policy" is considered the canonical
>> * pointer, but the "cpuid" and "msr" aliases exist so the most
>> * appropriate one can be used for local code clarity.
>> */
>> union {
>> struct cpu_policy *cpu_policy;
>> struct cpu_policy *cpuid;
>> struct cpu_policy *msr;
>> };
>>
>> So all the cases where you do have d->arch.cpuid.feat.$X, this continues
>> to work.
>>
>> The cases where you pull a cpu_policy out into a local variable, there
>> will be no cpuid or msr infix, but these cases already have no cpuid/msr
>> part to their naming.
> I see. I'm fine with this. There's still the remote possibility of
> field name clash between cpuid and msr names, but we can likely sort
> this out if we ever get into this position.
Thanks. Yeah, we can rename if things become problematic.
~Andrew
|