From: Zhi Wang <zhi.wang.linux@gmail.com>
To: Tianyu Lan <ltykernel@gmail.com>
Cc: luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org,
hpa@zytor.com, seanjc@google.com, pbonzini@redhat.com,
jgross@suse.com, tiala@microsoft.com, kirill@shutemov.name,
jiangshan.ljs@antgroup.com, peterz@infradead.org,
ashish.kalra@amd.com, srutherford@google.com,
akpm@linux-foundation.org, anshuman.khandual@arm.com,
pawan.kumar.gupta@linux.intel.com, adrian.hunter@intel.com,
daniel.sneddon@linux.intel.com,
alexander.shishkin@linux.intel.com, sandipan.das@amd.com,
ray.huang@amd.com, brijesh.singh@amd.com, michael.roth@amd.com,
thomas.lendacky@amd.com, venu.busireddy@oracle.com,
sterritt@google.com, tony.luck@intel.com,
samitolvanen@google.com, fenghua.yu@intel.com, pangupta@amd.com,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
linux-hyperv@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [RFC PATCH V5 03/15] x86/hyperv: Set Virtual Trust Level in VMBus init message
Date: Thu, 4 May 2023 18:58:14 +0300 [thread overview]
Message-ID: <20230504185814.00005792.zhi.wang.linux@gmail.com> (raw)
In-Reply-To: <4db13429-ffb0-debc-cec4-e37d0e526934@gmail.com>
On Thu, 4 May 2023 08:38:46 -0700
Tianyu Lan <ltykernel@gmail.com> wrote:
> On 5/2/2023 12:30 PM, Zhi Wang wrote:
> > On Mon, 1 May 2023 04:57:13 -0400
> > Tianyu Lan <ltykernel@gmail.com> wrote:
> >
> >> From: Tianyu Lan <tiala@microsoft.com>
> >>
> >> sev-snp guest provides vtl(Virtual Trust Level) and
> >> get it from hyperv hvcall via HVCALL_GET_VP_REGISTERS.
> >> Set target vtl in the VMBus init message.
> >>
> >> Signed-off-by: Tianyu Lan <tiala@microsoft.com>
> >> ---
> >> Change since RFC v4:
> >> * Use struct_size to calculate array size.
> >> * Fix some coding style
> >>
> >> Change since RFC v3:
> >> * Use the standard helper functions to check hypercall result
> >> * Fix coding style
> >>
> >> Change since RFC v2:
> >> * Rename get_current_vtl() to get_vtl()
> >> * Fix some coding style issues
> >> ---
> >> arch/x86/hyperv/hv_init.c | 36 ++++++++++++++++++++++++++++++
> >> arch/x86/include/asm/hyperv-tlfs.h | 7 ++++++
> >> drivers/hv/connection.c | 1 +
> >> include/asm-generic/mshyperv.h | 1 +
> >> include/linux/hyperv.h | 4 ++--
> >> 5 files changed, 47 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
> >> index 9f3e2d71d015..331b855314b7 100644
> >> --- a/arch/x86/hyperv/hv_init.c
> >> +++ b/arch/x86/hyperv/hv_init.c
> >> @@ -384,6 +384,40 @@ static void __init hv_get_partition_id(void)
> >> local_irq_restore(flags);
> >> }
> >>
> >> +static u8 __init get_vtl(void)
> >> +{
> >> + u64 control = HV_HYPERCALL_REP_COMP_1 | HVCALL_GET_VP_REGISTERS;
> >> + struct hv_get_vp_registers_input *input;
> >> + struct hv_get_vp_registers_output *output;
> >> + u64 vtl = 0;
> >> + u64 ret;
> >> + unsigned long flags;
> >> +
> >> + local_irq_save(flags);
> >> + input = *this_cpu_ptr(hyperv_pcpu_input_arg);
> >> + output = (struct hv_get_vp_registers_output *)input;
> >
> > ===
> >> + if (!input) {
> >> + local_irq_restore(flags);
> >> + goto done;
> >> + }
> >> +
> > ===
> > Is this really necessary?
> >
> > drivers/hv/hv_common.c:
> >
> > hyperv_pcpu_input_arg = alloc_percpu(void *);
> > BUG_ON(!hyperv_pcpu_input_arg);
> >
> >
>
> Hi Zhi:
> The hyperv_pcpu_input_arg is a point to address of input arg
> pages and these pages are allocated in the hv_common_cpu_init(). If
> it failed to allocate these pages, the value pointed by
> hyperv_pcpu_input_arg will be NULL.
>
Sorry, it seems my email editor dropped some text. I was wondering that
if the check above is necessary as there is a BUG_ON() when allocating
hyperv_pcpu_input_arg.
So when coming to get_vtl(), the hyperv_pcpu_input_arg should not be NULL.
(Guarded by the BUG_ON() in the allocation)?
next prev parent reply other threads:[~2023-05-04 15:58 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-01 8:57 [RFC PATCH V5 00/15] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 01/15] x86/hyperv: Add sev-snp enlightened guest static key Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 02/15] x86/hyperv: Decrypt hv vp assist page in sev-snp enlightened guest Tianyu Lan
2023-05-01 15:10 ` Tom Lendacky
2023-05-01 8:57 ` [RFC PATCH V5 03/15] x86/hyperv: Set Virtual Trust Level in VMBus init message Tianyu Lan
2023-05-02 19:30 ` Zhi Wang
2023-05-04 15:38 ` Tianyu Lan
2023-05-04 15:58 ` Zhi Wang [this message]
2023-05-01 8:57 ` [RFC PATCH V5 04/15] x86/hyperv: Use vmmcall to implement Hyper-V hypercall in sev-snp enlightened guest Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 05/15] clocksource/drivers/hyper-v: decrypt hyperv tsc page " Tianyu Lan
2023-05-04 16:54 ` Zhi Wang
2023-05-01 8:57 ` [RFC PATCH V5 06/15] hv: vmbus: decrypt VMBus pages for " Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 07/15] drivers: hv: Decrypt percpu hvcall input arg page in " Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 08/15] x86/hyperv: Initialize cpu and memory for " Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 09/15] x86/hyperv: Add smp support for sev-snp guest Tianyu Lan
2023-05-01 10:20 ` [EXTERNAL] " Saurabh Singh Sengar
2023-05-04 15:55 ` Tianyu Lan
2023-05-01 10:32 ` Saurabh Singh Sengar
2023-05-01 15:46 ` Tom Lendacky
2023-05-04 15:51 ` Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 10/15] x86/hyperv: Add hyperv-specific handling for VMMCALL under SEV-ES Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 11/15] x86/sev: Add a #HV exception handler Tianyu Lan
2023-05-05 10:59 ` Gupta, Pankaj
2023-05-11 13:25 ` Gupta, Pankaj
2023-05-01 8:57 ` [RFC PATCH V5 12/15] x86/sev: Add Check of #HV event in path Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 13/15] x86/sev: Add AMD sev-snp enlightened guest support on hyperv Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 14/15] x86/sev: optimize system vector processing invoked from #HV exception Tianyu Lan
2023-05-01 8:57 ` [RFC PATCH V5 15/15] x86/sev: Fix interrupt exit code paths " Tianyu Lan
2023-05-01 16:02 ` Tom Lendacky
2023-05-04 22:41 ` Tianyu Lan
2023-05-01 16:05 ` [RFC PATCH V5 00/15] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv Tom Lendacky
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=20230504185814.00005792.zhi.wang.linux@gmail.com \
--to=zhi.wang.linux@gmail.com \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=anshuman.khandual@arm.com \
--cc=ashish.kalra@amd.com \
--cc=bp@alien8.de \
--cc=brijesh.singh@amd.com \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=jiangshan.ljs@antgroup.com \
--cc=kirill@shutemov.name \
--cc=kvm@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ltykernel@gmail.com \
--cc=luto@kernel.org \
--cc=michael.roth@amd.com \
--cc=mingo@redhat.com \
--cc=pangupta@amd.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=ray.huang@amd.com \
--cc=samitolvanen@google.com \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=srutherford@google.com \
--cc=sterritt@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=tiala@microsoft.com \
--cc=tony.luck@intel.com \
--cc=venu.busireddy@oracle.com \
--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.