From: Michael Kelley <mikelley@microsoft.com>
To: Hillf Danton <hdanton@sina.com>
Cc: "will@kernel.org" <will@kernel.org>,
"ardb@kernel.org" <ardb@kernel.org>,
"arnd@arndb.de" <arnd@arndb.de>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"maz@kernel.org" <maz@kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"olaf@aepfle.de" <olaf@aepfle.de>,
"apw@canonical.com" <apw@canonical.com>,
vkuznets <vkuznets@redhat.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"marcelo.cerri@canonical.com" <marcelo.cerri@canonical.com>,
KY Srinivasan <kys@microsoft.com>,
Sunil Muthuswamy <sunilmut@microsoft.com>,
"boqun.feng@gmail.com" <boqun.feng@gmail.com>
Subject: RE: [PATCH v6 03/10] arm64: hyperv: Add hypercall and register access functions
Date: Thu, 19 Mar 2020 21:04:58 +0000 [thread overview]
Message-ID: <MW2PR2101MB1052AAC1EE6AC082C9ED6779D7F40@MW2PR2101MB1052.namprd21.prod.outlook.com> (raw)
In-Reply-To: <20200318031130.5476-1-hdanton@sina.com>
From: Hillf Danton <hdanton@sina.com> Sent: Tuesday, March 17, 2020 8:12 PM
>
> On Sat, 14 Mar 2020 08:35:12 -0700 Michael Kelley wrote:
> > +/*
> > + * Get the value of a single VP register. One version
> > + * returns just 64 bits and another returns the full 128 bits.
> > + * The two versions are separate to avoid complicating the
> > + * calling sequence for the more frequently used 64 bit version.
> > + */
> > +
> > +/*
> > + * Input and output memory allocation sizes are rounded up to a power
> > + * of 2 so kmalloc() will guarantee alignment. In turn, the alignment
> > + * ensures that the allocations don't cross a page boundary, which is
>
> Better to specify kmalloc's current alignment and why it fails to ensure
> (4 * sizeof(u64))-sized allocations wont cross page boundary.
>
Is your comment referring to ARCH_KMALLOC_MINALIGN? If so, I see
how that makes sense. BUILD_BUG_ON (sizeof (*input) >
ARCH_KMALLOC_MINALIGN) would be a cleaner solution.
Thanks,
Michael
> > + * required by the hypercall interface.
> > + */
> > +#define INPUTSIZE (4 * sizeof(u64))
> > +#define OUTPUTSIZE (2 * sizeof(u64))
> > +
> > +static void __hv_get_vpreg_128(u32 msr, struct hv_get_vp_register_output *res)
> > +{
> > + union hv_hypercall_status status;
> > + struct hv_get_vp_register_input *input;
> > +
> > + BUILD_BUG_ON(sizeof(*input) > INPUTSIZE);
> > +
> > + input = kzalloc(INPUTSIZE, GFP_ATOMIC);
> > +
> > + input->partitionid = HV_PARTITION_ID_SELF;
> > + input->vpindex = HV_VP_INDEX_SELF;
> > + input->inputvtl = 0;
> > + input->name0 = msr;
> > + input->name1 = 0;
> > +
> > +
> > + status.as_uint64 = hv_do_hypercall(
> > + HVCALL_GET_VP_REGISTERS | HV_HYPERCALL_REP_COUNT_1,
> > + input, res);
> > +
> > + /*
> > + * Something is fundamentally broken in the hypervisor if
> > + * getting a VP register fails. There's really no way to
> > + * continue as a guest VM, so panic.
> > + */
> > + BUG_ON(status.status != HV_STATUS_SUCCESS);
> > +
> > + kfree(input);
> > +}
prev parent reply other threads:[~2020-03-19 21:05 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-14 15:35 [PATCH v6 00/10] Subject: Enable Linux guests on Hyper-V on ARM64 Michael Kelley
2020-03-14 15:35 ` [PATCH v6 01/10] arm64: hyperv: Add core Hyper-V include files Michael Kelley
2020-03-15 17:31 ` Marc Zyngier
2020-03-18 0:10 ` Michael Kelley
2020-03-16 8:47 ` Arnd Bergmann
2020-03-18 0:12 ` Michael Kelley
2020-03-18 10:10 ` Arnd Bergmann
2020-03-19 21:31 ` Michael Kelley
2020-03-20 16:38 ` Arnd Bergmann
2020-03-14 15:35 ` [PATCH v6 02/10] arm/arm64: smccc-1.1: Add vendor specific owner definition Michael Kelley
2020-03-14 15:35 ` [PATCH v6 03/10] arm64: hyperv: Add hypercall and register access functions Michael Kelley
2020-03-14 15:35 ` [PATCH v6 04/10] arm64: hyperv: Add memory alloc/free functions for Hyper-V size pages Michael Kelley
2020-03-16 8:22 ` Arnd Bergmann
2020-03-16 8:30 ` gregkh
2020-03-16 8:30 ` Marc Zyngier
2020-03-16 8:32 ` Arnd Bergmann
2020-03-18 0:15 ` Michael Kelley
2020-03-18 9:57 ` Arnd Bergmann
2020-03-19 21:43 ` Michael Kelley
2020-03-20 16:28 ` Arnd Bergmann
2020-03-20 17:22 ` Michael Kelley
2020-03-14 15:35 ` [PATCH v6 05/10] arm64: hyperv: Add interrupt handlers for VMbus and stimer Michael Kelley
2020-03-16 8:25 ` Arnd Bergmann
2020-03-18 0:16 ` Michael Kelley
2020-03-18 9:52 ` Arnd Bergmann
2020-03-14 15:35 ` [PATCH v6 06/10] arm64: hyperv: Add kexec and panic handlers Michael Kelley
2020-03-15 18:15 ` Marc Zyngier
2020-03-18 0:17 ` Michael Kelley
2020-03-14 15:35 ` [PATCH v6 07/10] arm64: hyperv: Initialize hypervisor on boot Michael Kelley
2020-03-16 8:29 ` Arnd Bergmann
2020-03-18 0:17 ` Michael Kelley
2020-03-18 9:44 ` Arnd Bergmann
2020-03-14 15:35 ` [PATCH v6 08/10] Drivers: hv: vmbus: Add hooks for per-CPU IRQ Michael Kelley
2020-03-14 15:35 ` [PATCH v6 09/10] arm64: efi: Export screen_info Michael Kelley
2020-03-16 8:20 ` Arnd Bergmann
2020-03-18 0:18 ` Michael Kelley
2020-03-18 9:26 ` Arnd Bergmann
2020-03-19 21:46 ` Michael Kelley
2020-05-13 14:26 ` Nikhil Mahale
2020-05-18 4:25 ` Nikhil Mahale
2020-05-18 12:51 ` Ard Biesheuvel
2020-05-22 11:14 ` Nikhil Mahale
2020-05-22 11:32 ` Ard Biesheuvel
2020-03-14 15:35 ` [PATCH v6 10/10] Drivers: hv: Enable Hyper-V code to be built on ARM64 Michael Kelley
[not found] ` <20200318031130.5476-1-hdanton@sina.com>
2020-03-19 21:04 ` Michael Kelley [this message]
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=MW2PR2101MB1052AAC1EE6AC082C9ED6779D7F40@MW2PR2101MB1052.namprd21.prod.outlook.com \
--to=mikelley@microsoft.com \
--cc=apw@canonical.com \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdanton@sina.com \
--cc=jasowang@redhat.com \
--cc=kys@microsoft.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.cerri@canonical.com \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=olaf@aepfle.de \
--cc=sunilmut@microsoft.com \
--cc=vkuznets@redhat.com \
--cc=will@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).