Re: [PATCH] KVM: PPC: Align pt_regs in kvm_vcpu_arch structure

Murilo Opsfelder Araújo <[email protected]>
Newsgroups org.kernel.vger.kvm-ppc,org.ozlabs.lists.linuxppc-dev
Message-ID <[email protected]>
Hi, Fabiano.

On 5/25/22 09:49, Fabiano Rosas wrote:
> The H_ENTER_NESTED hypercall receives as second parameter the address
> of a region of memory containing the values for the nested guest
> privileged registers. We currently use the pt_regs structure contained
> within kvm_vcpu_arch for that end.
> 
> Most hypercalls that receive a memory address expect that region to
> not cross a 4k page boundary. We would want H_ENTER_NESTED to follow
> the same pattern so this patch ensures the pt_regs structure sits
> within a page.
> 
> Signed-off-by: Fabiano Rosas <[email protected]>

Is it necessary to explain in the commit message that even though the second
parameter needs to be 4k-aligned, we're aligning pt_regs to 512 bytes so it can
be placed within a 4k boundary because its size is below 512 bytes?

The natural thinking would be aligning it to 4k bytes, which would punch a huge
hole in kvm_vcpu_arch. I think having the explanation of why 512 vs. 4k is
worthwhile mentioning.

> ---
>   arch/powerpc/include/asm/kvm_host.h | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> index faf301d0dec0..87eba60f2920 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -519,7 +519,11 @@ struct kvm_vcpu_arch {
>   	struct kvmppc_book3s_shadow_vcpu *shadow_vcpu;
>   #endif
>   
> -	struct pt_regs regs;
> +	/*
> +	 * This is passed along to the HV via H_ENTER_NESTED. Align to
> +	 * prevent it crossing a real 4K page.
> +	 */
> +	struct pt_regs regs __aligned(512);
>   
>   	struct thread_fp_state fp;
>   


-- 
Murilo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.