From: Easwar Hariharan <eahariha@linux.microsoft.com>
To: Nuno Das Neves <nunodasneves@linux.microsoft.com>
Cc: eahariha@linux.microsoft.com,
Roman Kisel <romank@linux.microsoft.com>,
hpa@zytor.com, kys@microsoft.com, bp@alien8.de,
dave.hansen@linux.intel.com, decui@microsoft.com,
haiyangz@microsoft.com, mingo@redhat.com, mhklinux@outlook.com,
tglx@linutronix.de, tiala@microsoft.com, wei.liu@kernel.org,
linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, apais@microsoft.com, benhill@microsoft.com,
ssengar@microsoft.com, sunilmut@microsoft.com, vdso@hexbites.dev
Subject: Re: [PATCH 1/2] hyperv: Fix pointer type for the output of the hypercall in get_vtl(void)
Date: Thu, 19 Dec 2024 11:32:15 -0800 [thread overview]
Message-ID: <85d4f360-3dd8-4a2b-bdbe-b1997321f48e@linux.microsoft.com> (raw)
In-Reply-To: <ed70560d-9901-4859-9bc0-6fa368636438@linux.microsoft.com>
On 12/19/2024 11:23 AM, Nuno Das Neves wrote:
> On 12/19/2024 11:13 AM, Easwar Hariharan wrote:
>> On 12/19/2024 10:40 AM, Nuno Das Neves wrote:
>>> On 12/18/2024 12:54 PM, Roman Kisel wrote:
>>>> Commit bc905fa8b633 ("hyperv: Switch from hyperv-tlfs.h to hyperv/hvhdk.h")
>>>> changed the type of the output pointer to `struct hv_register_assoc` from
>>>> `struct hv_get_vp_registers_output`. That leads to an incorrect computation,
>>>> and leaves the system broken.
>>>>
>>> My bad! But, lets not use `struct hv_get_registers_output`. Instead, use
>>> `struct hv_register_value`, since that is the more complete definition of a
>>> register value. The output of the get_vp_registers hypercall is just an array
>>> of these values.
>>>
>>> Ideally we remove `struct hv_get_vp_registers_output` at some point, since
>>> it serves the same role as `struct hv_register_value` but in a more limited
>>> capacity.
>>>
>>> Thanks
>>> Nuno
>>>
>>
>> I had much the same conversation with Roman off-list yesterday.
>>
>> The choice is between using hv_get_registers_output which is clearly the
>> output of the GetVpRegisters hypercall by name, albeit limited as you
>
> If it's desirable to have a more 'friendly' naming here, then I'd be okay with:
> ```
> /* NOTE: Linux helper struct - NOT from Hyper-V code */
> struct hv_output_get_vp_registers {
> DECLARE_FLEX_ARRAY(struct hv_register_value, values);
> }
> ```
> Note also the name is prefixed with "hv_output_" to match other hypercall outputs.
I like the idea of improving our code readability and consistency in
interface naming independently of the hypervisor. That comment should
allow for clarity when new definitions are imported.
>
>> said, and hv_register_value which is the more complete definition and
>> what the hypervisor actually returns, but does not currently include the
>> arm64 definitions in our copy of hvgdk_mini.h. hv_get_registers_output
>> and hv_register_value overlap in layout for Roman's purposes.
>>
>> FWIW, I'm in favor of adding the arm64 definitions to hv_register_value
>> and using it for this get_vtl() patch.
>>
>> This could be accompanied with migration of hv_get_vpreg128 in arm64/
>> and removal of struct hv_get_registers_output, or that could be deferred
>> to a later patch.
>
> I'd be happy to submit a followup patch to update the arm64 code to use
> hv_register_value, or a new struct as outlined above.
>
> It is a pretty small change though, it might be easier to just include it in
> this series.
>
Thank you! I'll leave it you and Roman to decide how you go about that.
- Easwar
next prev parent reply other threads:[~2024-12-19 19:32 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-18 20:54 [PATCH 0/2] hyperv: Fixes for get_vtl(void) Roman Kisel
2024-12-18 20:54 ` [PATCH 1/2] hyperv: Fix pointer type for the output of the hypercall in get_vtl(void) Roman Kisel
2024-12-19 2:45 ` Wei Liu
2024-12-19 17:26 ` Roman Kisel
2024-12-19 18:40 ` Nuno Das Neves
2024-12-19 19:11 ` Roman Kisel
2024-12-19 19:13 ` Easwar Hariharan
2024-12-19 19:23 ` Nuno Das Neves
2024-12-19 19:32 ` Easwar Hariharan [this message]
2024-12-19 20:03 ` Roman Kisel
2024-12-19 20:00 ` Roman Kisel
2024-12-19 20:04 ` Easwar Hariharan
2024-12-19 20:18 ` Roman Kisel
2024-12-18 20:54 ` [PATCH 2/2] hyperv: Do not overlap the input and output hypercall areas " Roman Kisel
2024-12-19 2:42 ` Wei Liu
2024-12-19 18:19 ` Roman Kisel
2024-12-19 21:35 ` Wei Liu
2024-12-19 21:37 ` Michael Kelley
2024-12-19 23:39 ` Roman Kisel
2024-12-20 2:01 ` Michael Kelley
2024-12-20 19:13 ` Roman Kisel
2024-12-20 22:42 ` Michael Kelley
2024-12-23 20:30 ` Roman Kisel
2024-12-24 16:45 ` Michael Kelley
2024-12-26 16:45 ` Roman Kisel
2024-12-26 20:04 ` Michael Kelley
2024-12-26 20:42 ` Roman Kisel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=85d4f360-3dd8-4a2b-bdbe-b1997321f48e@linux.microsoft.com \
--to=eahariha@linux.microsoft.com \
--cc=apais@microsoft.com \
--cc=benhill@microsoft.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=nunodasneves@linux.microsoft.com \
--cc=romank@linux.microsoft.com \
--cc=ssengar@microsoft.com \
--cc=sunilmut@microsoft.com \
--cc=tglx@linutronix.de \
--cc=tiala@microsoft.com \
--cc=vdso@hexbites.dev \
--cc=wei.liu@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.