qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

target/arm: "define_arm_cp_regs" and similar for KVM


From: Claudio Fontana
Subject: target/arm: "define_arm_cp_regs" and similar for KVM
Date: Fri, 26 Feb 2021 18:27:07 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0

Hi Peter,

I am trying to find out how to split properly KVM and TCG in target/arm, among 
other things.

I skipped or stubbed all define_arm_cp_regs and similar functions,

and made a cpregs module that is TCG-only.

Thought it is fine, as we have a kvm_arm_init_cpreg_list that throws away 
everything TCG-related anyway later:

target/arm/kvm.c:

/* Initialize the ARMCPU cpreg list according to the kernel's                   
                                                            
 * definition of what CPU registers it knows about (and throw away              
                                                            
 * the previous TCG-created cpreg list).                                        
                                                            
 */
int kvm_arm_init_cpreg_list(ARMCPU *cpu)

Can you confirm that it is ok to do so?

But I found something peculiar in hw/intc/arm_gicv3_kvm.c:

here we have explictly for a "kvm" module a reginfo definition, and a call to

define_arm_cp_regs(cpu, gicv3_cpuif_reginfo);

/*                                                                              
                                                            
 * CPU interface registers of GIC needs to be reset on CPU reset.               
                                                            
 * For the calling arm_gicv3_icc_reset() on CPU reset, we register              
                                                            
 * below ARMCPRegInfo. As we reset the whole cpu interface under single         
                                                            
 * register reset, we define only one register of CPU interface instead         
                                                            
 * of defining all the registers.                                               
                                                            
 */
static const ARMCPRegInfo gicv3_cpuif_reginfo[] = {



Is this actually an exception, and possibly the only use of define_arm_cp_regs 
that would be required on KVM too?

Am I under some wrong assumption?

Thank you for any help in clarifying this..

commit 07a5628cb89f13b98fe526117fd07e5e273b5a52
Author: Vijaya Kumar K <Vijaya.Kumar@cavium.com>
Date:   Thu Feb 23 17:21:13 2017 +0530

Thanks,

Claudio


-- 
Claudio Fontana
Engineering Manager Virtualization, SUSE Labs Core

SUSE Software Solutions Italy Srl



reply via email to

[Prev in Thread] Current Thread [Next in Thread]