Re: [RFC PATCH V3 01/11] x86/HV: Initialize GHCB page in Isolation VM

From: Christoph Hellwig
Date: Mon Jun 07 2021 - 02:41:54 EST


On Sun, May 30, 2021 at 11:06:18AM -0400, Tianyu Lan wrote:
> + if (ms_hyperv.ghcb_base) {
> + rdmsrl(MSR_AMD64_SEV_ES_GHCB, ghcb_gpa);
> +
> + ghcb_va = ioremap_cache(ghcb_gpa, HV_HYP_PAGE_SIZE);
> + if (!ghcb_va)
> + return -ENOMEM;

Can you explain this a bit more? We've very much deprecated
ioremap_cache in favor of memremap. Why yo you need a __iomem address
here? Why do we need the remap here at all?

Does the data structure at this address not have any types that we
could use a struct for?

> +
> + rdmsrl(MSR_AMD64_SEV_ES_GHCB, ghcb_gpa);
> + ghcb_va = ioremap_cache(ghcb_gpa, HV_HYP_PAGE_SIZE);
> + if (!ghcb_va) {

This seems to duplicate the above code.

> +bool hv_isolation_type_snp(void)
> +{
> + return static_branch_unlikely(&isolation_type_snp);
> +}
> +EXPORT_SYMBOL_GPL(hv_isolation_type_snp);

This probably wants a kerneldoc explaining when it should be used.