Skip to content

Commit

Permalink
ppc: spapr: Rename cpu_dt_id to vcpu_id
Browse files Browse the repository at this point in the history
This field actually records the VCPU ID used by KVM and, although the
value is also used in the device tree it is primarily the VCPU ID so
rename it as such.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
[dwg: Updated comment missed in cpu.h]
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
  • Loading branch information
sambltc authored and dgibson committed Sep 7, 2017
1 parent 6d53657 commit 81210c2
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 29 deletions.
8 changes: 4 additions & 4 deletions hw/ppc/ppc.c
Expand Up @@ -1359,19 +1359,19 @@ void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val)
}

/* CPU device-tree ID helpers */
int ppc_get_vcpu_dt_id(PowerPCCPU *cpu)
int ppc_get_vcpu_id(PowerPCCPU *cpu)
{
return cpu->cpu_dt_id;
return cpu->vcpu_id;
}

PowerPCCPU *ppc_get_vcpu_by_dt_id(int cpu_dt_id)
PowerPCCPU *ppc_get_cpu_by_vcpu_id(int vcpu_id)
{
CPUState *cs;

CPU_FOREACH(cs) {
PowerPCCPU *cpu = POWERPC_CPU(cs);

if (cpu->cpu_dt_id == cpu_dt_id) {
if (cpu->vcpu_id == vcpu_id) {
return cpu;
}
}
Expand Down
16 changes: 8 additions & 8 deletions hw/ppc/spapr.c
Expand Up @@ -208,7 +208,7 @@ static int spapr_fixup_cpu_smt_dt(void *fdt, int offset, PowerPCCPU *cpu,
int i, ret = 0;
uint32_t servers_prop[smt_threads];
uint32_t gservers_prop[smt_threads * 2];
int index = ppc_get_vcpu_dt_id(cpu);
int index = ppc_get_vcpu_id(cpu);

if (cpu->compat_pvr) {
ret = fdt_setprop_cell(fdt, offset, "cpu-version", cpu->compat_pvr);
Expand Down Expand Up @@ -237,7 +237,7 @@ static int spapr_fixup_cpu_smt_dt(void *fdt, int offset, PowerPCCPU *cpu,

static int spapr_fixup_cpu_numa_dt(void *fdt, int offset, PowerPCCPU *cpu)
{
int index = ppc_get_vcpu_dt_id(cpu);
int index = ppc_get_vcpu_id(cpu);
uint32_t associativity[] = {cpu_to_be32(0x5),
cpu_to_be32(0x0),
cpu_to_be32(0x0),
Expand Down Expand Up @@ -341,7 +341,7 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPRMachineState *spapr)
PowerPCCPU *cpu = POWERPC_CPU(cs);
CPUPPCState *env = &cpu->env;
DeviceClass *dc = DEVICE_GET_CLASS(cs);
int index = ppc_get_vcpu_dt_id(cpu);
int index = ppc_get_vcpu_id(cpu);
int compat_smt = MIN(smp_threads, ppc_compat_max_threads(cpu));

if ((index % smt) != 0) {
Expand Down Expand Up @@ -493,7 +493,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
PowerPCCPU *cpu = POWERPC_CPU(cs);
CPUPPCState *env = &cpu->env;
PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs);
int index = ppc_get_vcpu_dt_id(cpu);
int index = ppc_get_vcpu_id(cpu);
uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40),
0xffffffff, 0xffffffff};
uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq()
Expand Down Expand Up @@ -626,7 +626,7 @@ static void spapr_populate_cpus_dt_node(void *fdt, sPAPRMachineState *spapr)
*/
CPU_FOREACH_REVERSE(cs) {
PowerPCCPU *cpu = POWERPC_CPU(cs);
int index = ppc_get_vcpu_dt_id(cpu);
int index = ppc_get_vcpu_id(cpu);
DeviceClass *dc = DEVICE_GET_CLASS(cs);
int offset;

Expand Down Expand Up @@ -3025,7 +3025,7 @@ static void *spapr_populate_hotplug_cpu_dt(CPUState *cs, int *fdt_offset,
{
PowerPCCPU *cpu = POWERPC_CPU(cs);
DeviceClass *dc = DEVICE_GET_CLASS(cs);
int id = ppc_get_vcpu_dt_id(cpu);
int id = ppc_get_vcpu_id(cpu);
void *fdt;
int offset, fdt_size;
char *nodename;
Expand Down Expand Up @@ -3433,9 +3433,9 @@ static void spapr_ics_resend(XICSFabric *dev)
ics_resend(spapr->ics);
}

static ICPState *spapr_icp_get(XICSFabric *xi, int cpu_dt_id)
static ICPState *spapr_icp_get(XICSFabric *xi, int vcpu_id)
{
PowerPCCPU *cpu = ppc_get_vcpu_by_dt_id(cpu_dt_id);
PowerPCCPU *cpu = ppc_get_cpu_by_vcpu_id(vcpu_id);

return cpu ? ICP(cpu->intc) : NULL;
}
Expand Down
4 changes: 2 additions & 2 deletions hw/ppc/spapr_hcall.c
Expand Up @@ -999,7 +999,7 @@ static target_ulong h_register_vpa(PowerPCCPU *cpu, sPAPRMachineState *spapr,
CPUPPCState *tenv;
PowerPCCPU *tcpu;

tcpu = ppc_get_vcpu_by_dt_id(procno);
tcpu = ppc_get_cpu_by_vcpu_id(procno);
if (!tcpu) {
return H_PARAMETER;
}
Expand Down Expand Up @@ -1431,7 +1431,7 @@ static target_ulong h_signal_sys_reset(PowerPCCPU *cpu,

} else {
/* Unicast */
cs = CPU(ppc_get_vcpu_by_dt_id(target));
cs = CPU(ppc_get_cpu_by_vcpu_id(target));
if (cs) {
run_on_cpu(cs, spapr_do_system_reset_on_cpu, RUN_ON_CPU_NULL);
return H_SUCCESS;
Expand Down
4 changes: 2 additions & 2 deletions hw/ppc/spapr_rtas.c
Expand Up @@ -104,7 +104,7 @@ static void rtas_query_cpu_stopped_state(PowerPCCPU *cpu_,
}

id = rtas_ld(args, 0);
cpu = ppc_get_vcpu_by_dt_id(id);
cpu = ppc_get_cpu_by_vcpu_id(id);
if (cpu != NULL) {
if (CPU(cpu)->halted) {
rtas_st(rets, 1, 0);
Expand Down Expand Up @@ -158,7 +158,7 @@ static void rtas_start_cpu(PowerPCCPU *cpu_, sPAPRMachineState *spapr,
start = rtas_ld(args, 1);
r3 = rtas_ld(args, 2);

cpu = ppc_get_vcpu_by_dt_id(id);
cpu = ppc_get_cpu_by_vcpu_id(id);
if (cpu != NULL) {
CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env;
Expand Down
16 changes: 8 additions & 8 deletions target/ppc/cpu.h
Expand Up @@ -1188,7 +1188,7 @@ typedef struct PPCVirtualHypervisorClass PPCVirtualHypervisorClass;
/**
* PowerPCCPU:
* @env: #CPUPPCState
* @cpu_dt_id: CPU index used in the device tree. KVM uses this index too
* @vcpu_id: vCPU identifier given to KVM
* @compat_pvr: Current logical PVR, zero if in "raw" mode
*
* A PowerPC CPU.
Expand All @@ -1199,7 +1199,7 @@ struct PowerPCCPU {
/*< public >*/

CPUPPCState env;
int cpu_dt_id;
int vcpu_id;
uint32_t compat_pvr;
PPCVirtualHypervisor *vhyp;
Object *intc;
Expand Down Expand Up @@ -2515,22 +2515,22 @@ static inline bool lsw_reg_in_range(int start, int nregs, int rx)
void dump_mmu(FILE *f, fprintf_function cpu_fprintf, CPUPPCState *env);

/**
* ppc_get_vcpu_dt_id:
* ppc_get_vcpu_id:
* @cs: a PowerPCCPU struct.
*
* Returns a device-tree ID for a CPU.
*/
int ppc_get_vcpu_dt_id(PowerPCCPU *cpu);
int ppc_get_vcpu_id(PowerPCCPU *cpu);

/**
* ppc_get_vcpu_by_dt_id:
* @cpu_dt_id: a device tree id
* ppc_get_cpu_by_vcpu_id:
* @vcpu_id: a VCPU ID
*
* Searches for a CPU by @cpu_dt_id.
* Searches for a CPU by @vcpu_id.
*
* Returns: a PowerPCCPU struct
*/
PowerPCCPU *ppc_get_vcpu_by_dt_id(int cpu_dt_id);
PowerPCCPU *ppc_get_cpu_by_vcpu_id(int vcpu_id);

void ppc_maybe_bswap_register(CPUPPCState *env, uint8_t *mem_buf, int len);
#endif /* PPC_CPU_H */
2 changes: 1 addition & 1 deletion target/ppc/kvm.c
Expand Up @@ -520,7 +520,7 @@ bool kvmppc_is_mem_backend_page_size_ok(const char *obj_path)

unsigned long kvm_arch_vcpu_id(CPUState *cpu)
{
return ppc_get_vcpu_dt_id(POWERPC_CPU(cpu));
return ppc_get_vcpu_id(POWERPC_CPU(cpu));
}

/* e500 supports 2 h/w breakpoint and 2 watchpoint.
Expand Down
8 changes: 4 additions & 4 deletions target/ppc/translate_init.c
Expand Up @@ -9838,14 +9838,14 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error **errp)
}

#if !defined(CONFIG_USER_ONLY)
cpu->cpu_dt_id = (cs->cpu_index / smp_threads) * max_smt
cpu->vcpu_id = (cs->cpu_index / smp_threads) * max_smt
+ (cs->cpu_index % smp_threads);

if (kvm_enabled() && !kvm_vcpu_id_is_valid(cpu->cpu_dt_id)) {
error_setg(errp, "Can't create CPU with id %d in KVM", cpu->cpu_dt_id);
if (kvm_enabled() && !kvm_vcpu_id_is_valid(cpu->vcpu_id)) {
error_setg(errp, "Can't create CPU with id %d in KVM", cpu->vcpu_id);
error_append_hint(errp, "Adjust the number of cpus to %d "
"or try to raise the number of threads per core\n",
cpu->cpu_dt_id * smp_threads / max_smt);
cpu->vcpu_id * smp_threads / max_smt);
goto unrealize;
}
#endif
Expand Down

0 comments on commit 81210c2

Please sign in to comment.