Message ID | 20250307220304.247725-7-romank@linux.microsoft.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Delegated to: | Krzysztof WilczyĆski |
Headers | show |
Series | arm64: hyperv: Support Virtual Trust Level Boot | expand |
On Fri, Mar 07, 2025 at 02:02:58PM -0800, Roman Kisel wrote: > The hyperv guest code might run in various Virtual Trust Levels. > > Report the level when the kernel boots in the non-default (0) > one. > > Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > --- > arch/arm64/hyperv/mshyperv.c | 2 ++ > arch/x86/hyperv/hv_vtl.c | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c > index a7db03f5413d..3bc16dbee758 100644 > --- a/arch/arm64/hyperv/mshyperv.c > +++ b/arch/arm64/hyperv/mshyperv.c > @@ -108,6 +108,8 @@ static int __init hyperv_init(void) > if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) > hv_get_partition_id(); > ms_hyperv.vtl = get_vtl(); > + if (ms_hyperv.vtl > 0) /* non default VTL */ "non-default". > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > ms_hyperv_late_init(); > > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c > index 4e1b1e3b5658..c21bee7e8ff3 100644 > --- a/arch/x86/hyperv/hv_vtl.c > +++ b/arch/x86/hyperv/hv_vtl.c > @@ -24,7 +24,7 @@ static bool __init hv_vtl_msi_ext_dest_id(void) > > void __init hv_vtl_init_platform(void) > { > - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); Where isn't there a check for ms_hyperv.vtl > 0 here? Please be consistent across different architectures. > > x86_platform.realmode_reserve = x86_init_noop; > x86_platform.realmode_init = x86_init_noop; > -- > 2.43.0 > >
On 3/9/2025 5:31 PM, Wei Liu wrote: > On Fri, Mar 07, 2025 at 02:02:58PM -0800, Roman Kisel wrote: >> The hyperv guest code might run in various Virtual Trust Levels. >> >> Report the level when the kernel boots in the non-default (0) >> one. >> >> Signed-off-by: Roman Kisel <romank@linux.microsoft.com> >> --- >> arch/arm64/hyperv/mshyperv.c | 2 ++ >> arch/x86/hyperv/hv_vtl.c | 2 +- >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c >> index a7db03f5413d..3bc16dbee758 100644 >> --- a/arch/arm64/hyperv/mshyperv.c >> +++ b/arch/arm64/hyperv/mshyperv.c >> @@ -108,6 +108,8 @@ static int __init hyperv_init(void) >> if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) >> hv_get_partition_id(); >> ms_hyperv.vtl = get_vtl(); >> + if (ms_hyperv.vtl > 0) /* non default VTL */ > > "non-default". > Thanks, will fix that! >> + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); >> >> ms_hyperv_late_init(); >> >> diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c >> index 4e1b1e3b5658..c21bee7e8ff3 100644 >> --- a/arch/x86/hyperv/hv_vtl.c >> +++ b/arch/x86/hyperv/hv_vtl.c >> @@ -24,7 +24,7 @@ static bool __init hv_vtl_msi_ext_dest_id(void) >> >> void __init hv_vtl_init_platform(void) >> { >> - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); >> + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > Where isn't there a check for ms_hyperv.vtl > 0 here? > On x86, there is #ifdef CONFIG_HYPERV_VTL_MODE void __init hv_vtl_init_platform(void); int __init hv_vtl_early_init(void); #else static inline void __init hv_vtl_init_platform(void) {} static inline int __init hv_vtl_early_init(void) { return 0; } #endif > Please be consistent across different architectures. > In the earlier versions of the patch series, I had that piece from the above mirrored in the arm64, and there was advice on removing the function as it contained just one statement. I'll revisit the approach, thanks for your help! >> >> x86_platform.realmode_reserve = x86_init_noop; >> x86_platform.realmode_init = x86_init_noop; >> -- >> 2.43.0 >> >>
On Mon, Mar 10, 2025 at 09:42:15AM -0700, Roman Kisel wrote: > > > On 3/9/2025 5:31 PM, Wei Liu wrote: > > On Fri, Mar 07, 2025 at 02:02:58PM -0800, Roman Kisel wrote: > > > The hyperv guest code might run in various Virtual Trust Levels. > > > > > > Report the level when the kernel boots in the non-default (0) > > > one. > > > > > > Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > > > --- > > > arch/arm64/hyperv/mshyperv.c | 2 ++ > > > arch/x86/hyperv/hv_vtl.c | 2 +- > > > 2 files changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c > > > index a7db03f5413d..3bc16dbee758 100644 > > > --- a/arch/arm64/hyperv/mshyperv.c > > > +++ b/arch/arm64/hyperv/mshyperv.c > > > @@ -108,6 +108,8 @@ static int __init hyperv_init(void) > > > if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) > > > hv_get_partition_id(); > > > ms_hyperv.vtl = get_vtl(); > > > + if (ms_hyperv.vtl > 0) /* non default VTL */ > > > > "non-default". > > > > Thanks, will fix that! > > > > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > > ms_hyperv_late_init(); > > > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c > > > index 4e1b1e3b5658..c21bee7e8ff3 100644 > > > --- a/arch/x86/hyperv/hv_vtl.c > > > +++ b/arch/x86/hyperv/hv_vtl.c > > > @@ -24,7 +24,7 @@ static bool __init hv_vtl_msi_ext_dest_id(void) > > > void __init hv_vtl_init_platform(void) > > > { > > > - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); > > > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > > > Where isn't there a check for ms_hyperv.vtl > 0 here? > > > > On x86, there is > > #ifdef CONFIG_HYPERV_VTL_MODE > void __init hv_vtl_init_platform(void); > int __init hv_vtl_early_init(void); > #else > static inline void __init hv_vtl_init_platform(void) {} > static inline int __init hv_vtl_early_init(void) { return 0; } > #endif > > > Please be consistent across different architectures. > > > > In the earlier versions of the patch series, I had that piece > from the above mirrored in the arm64, and there was advice on > removing the function as it contained just one statement. > I'll revisit the approach, thanks for your help! As long as the output is consistent across different architectures, I'm good. Wei. > > > > x86_platform.realmode_reserve = x86_init_noop; > > > x86_platform.realmode_init = x86_init_noop; > > > -- > > > 2.43.0 > > > > > > > > -- > Thank you, > Roman >
On 3/10/2025 9:53 AM, Wei Liu wrote: > On Mon, Mar 10, 2025 at 09:42:15AM -0700, Roman Kisel wrote: [...] >> >>> Please be consistent across different architectures. >>> >> >> In the earlier versions of the patch series, I had that piece >> from the above mirrored in the arm64, and there was advice on >> removing the function as it contained just one statement. >> I'll revisit the approach, thanks for your help! > > As long as the output is consistent across different architectures, I'm > good. I should add a comment most likely to save people some time grepping the code as the line does look like should always print that. IOW not printing for VTL0 is obscured by the preprocessor/#define cruft. > > Wei. > >> >>>> x86_platform.realmode_reserve = x86_init_noop; >>>> x86_platform.realmode_init = x86_init_noop; >>>> -- >>>> 2.43.0 >>>> >>>> >> >> -- >> Thank you, >> Roman >>
diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c index a7db03f5413d..3bc16dbee758 100644 --- a/arch/arm64/hyperv/mshyperv.c +++ b/arch/arm64/hyperv/mshyperv.c @@ -108,6 +108,8 @@ static int __init hyperv_init(void) if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) hv_get_partition_id(); ms_hyperv.vtl = get_vtl(); + if (ms_hyperv.vtl > 0) /* non default VTL */ + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); ms_hyperv_late_init(); diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index 4e1b1e3b5658..c21bee7e8ff3 100644 --- a/arch/x86/hyperv/hv_vtl.c +++ b/arch/x86/hyperv/hv_vtl.c @@ -24,7 +24,7 @@ static bool __init hv_vtl_msi_ext_dest_id(void) void __init hv_vtl_init_platform(void) { - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); x86_platform.realmode_reserve = x86_init_noop; x86_platform.realmode_init = x86_init_noop;
The hyperv guest code might run in various Virtual Trust Levels. Report the level when the kernel boots in the non-default (0) one. Signed-off-by: Roman Kisel <romank@linux.microsoft.com> --- arch/arm64/hyperv/mshyperv.c | 2 ++ arch/x86/hyperv/hv_vtl.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)