Commit 1b1ed8dc authored by Andreas Färber's avatar Andreas Färber
Browse files

cpu: Move numa_node field to CPUState

parent 66afd1ad
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
            }
        }
    }
+1 −3
Original line number Diff line number Diff line
@@ -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;

@@ -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
+3 −1
Original line number Diff line number Diff line
@@ -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)};
@@ -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) {
+0 −1
Original line number Diff line number Diff line
@@ -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;                                                       \
+2 −0
Original line number Diff line number Diff line
@@ -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.
@@ -73,6 +74,7 @@ struct CPUState {

    int nr_cores;
    int nr_threads;
    int numa_node;

    struct QemuThread *thread;
#ifdef _WIN32
Loading