Loading cpus.c +3 −1 Original line number Diff line number Diff line Loading @@ -1160,12 +1160,14 @@ static void tcg_exec_all(void) void set_numa_modes(void) { CPUArchState *env; CPUState *cpu; int i; for (env = first_cpu; env != NULL; env = env->next_cpu) { cpu = ENV_GET_CPU(env); for (i = 0; i < nb_numa_nodes; i++) { if (test_bit(env->cpu_index, node_cpumask[i])) { env->numa_node = i; cpu->numa_node = i; } } } Loading exec.c +1 −3 Original line number Diff line number Diff line Loading @@ -262,9 +262,7 @@ CPUArchState *qemu_get_cpu(int cpu) void cpu_exec_init(CPUArchState *env) { #ifndef CONFIG_USER_ONLY CPUState *cpu = ENV_GET_CPU(env); #endif CPUArchState **penv; int cpu_index; Loading @@ -279,7 +277,7 @@ void cpu_exec_init(CPUArchState *env) cpu_index++; } env->cpu_index = cpu_index; env->numa_node = 0; cpu->numa_node = 0; QTAILQ_INIT(&env->breakpoints); QTAILQ_INIT(&env->watchpoints); #ifndef CONFIG_USER_ONLY Loading hw/spapr.c +3 −1 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment *spapr) { int ret = 0, offset; CPUPPCState *env; CPUState *cpu; char cpu_model[32]; int smt = kvmppc_smt_threads(); uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)}; Loading @@ -147,11 +148,12 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment *spapr) assert(spapr->cpu_model); for (env = first_cpu; env != NULL; env = env->next_cpu) { cpu = ENV_GET_CPU(env); uint32_t associativity[] = {cpu_to_be32(0x5), cpu_to_be32(0x0), cpu_to_be32(0x0), cpu_to_be32(0x0), cpu_to_be32(env->numa_node), cpu_to_be32(cpu->numa_node), cpu_to_be32(env->cpu_index)}; if ((env->cpu_index % smt) != 0) { Loading include/exec/cpu-defs.h +0 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,6 @@ typedef struct CPUWatchpoint { CPUArchState *next_cpu; /* next CPU sharing TB cache */ \ int cpu_index; /* CPU index (informative) */ \ uint32_t host_tid; /* host thread ID */ \ int numa_node; /* NUMA node this cpu is belonging to */ \ int running; /* Nonzero if cpu is currently running(usermode). */ \ /* user data */ \ void *opaque; \ Loading include/qom/cpu.h +2 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ struct kvm_run; * CPUState: * @nr_cores: Number of cores within this CPU package. * @nr_threads: Number of threads within this CPU. * @numa_node: NUMA node this CPU is belonging to. * @created: Indicates whether the CPU thread has been successfully created. * @stop: Indicates a pending stop request. * @stopped: Indicates the CPU has been artificially stopped. Loading @@ -73,6 +74,7 @@ struct CPUState { int nr_cores; int nr_threads; int numa_node; struct QemuThread *thread; #ifdef _WIN32 Loading Loading
cpus.c +3 −1 Original line number Diff line number Diff line Loading @@ -1160,12 +1160,14 @@ static void tcg_exec_all(void) void set_numa_modes(void) { CPUArchState *env; CPUState *cpu; int i; for (env = first_cpu; env != NULL; env = env->next_cpu) { cpu = ENV_GET_CPU(env); for (i = 0; i < nb_numa_nodes; i++) { if (test_bit(env->cpu_index, node_cpumask[i])) { env->numa_node = i; cpu->numa_node = i; } } } Loading
exec.c +1 −3 Original line number Diff line number Diff line Loading @@ -262,9 +262,7 @@ CPUArchState *qemu_get_cpu(int cpu) void cpu_exec_init(CPUArchState *env) { #ifndef CONFIG_USER_ONLY CPUState *cpu = ENV_GET_CPU(env); #endif CPUArchState **penv; int cpu_index; Loading @@ -279,7 +277,7 @@ void cpu_exec_init(CPUArchState *env) cpu_index++; } env->cpu_index = cpu_index; env->numa_node = 0; cpu->numa_node = 0; QTAILQ_INIT(&env->breakpoints); QTAILQ_INIT(&env->watchpoints); #ifndef CONFIG_USER_ONLY Loading
hw/spapr.c +3 −1 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment *spapr) { int ret = 0, offset; CPUPPCState *env; CPUState *cpu; char cpu_model[32]; int smt = kvmppc_smt_threads(); uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)}; Loading @@ -147,11 +148,12 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPREnvironment *spapr) assert(spapr->cpu_model); for (env = first_cpu; env != NULL; env = env->next_cpu) { cpu = ENV_GET_CPU(env); uint32_t associativity[] = {cpu_to_be32(0x5), cpu_to_be32(0x0), cpu_to_be32(0x0), cpu_to_be32(0x0), cpu_to_be32(env->numa_node), cpu_to_be32(cpu->numa_node), cpu_to_be32(env->cpu_index)}; if ((env->cpu_index % smt) != 0) { Loading
include/exec/cpu-defs.h +0 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,6 @@ typedef struct CPUWatchpoint { CPUArchState *next_cpu; /* next CPU sharing TB cache */ \ int cpu_index; /* CPU index (informative) */ \ uint32_t host_tid; /* host thread ID */ \ int numa_node; /* NUMA node this cpu is belonging to */ \ int running; /* Nonzero if cpu is currently running(usermode). */ \ /* user data */ \ void *opaque; \ Loading
include/qom/cpu.h +2 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ struct kvm_run; * CPUState: * @nr_cores: Number of cores within this CPU package. * @nr_threads: Number of threads within this CPU. * @numa_node: NUMA node this CPU is belonging to. * @created: Indicates whether the CPU thread has been successfully created. * @stop: Indicates a pending stop request. * @stopped: Indicates the CPU has been artificially stopped. Loading @@ -73,6 +74,7 @@ struct CPUState { int nr_cores; int nr_threads; int numa_node; struct QemuThread *thread; #ifdef _WIN32 Loading