kernel: Fix topology fallout for vkernel and i386.
authorSascha Wildner <saw@online.de>
Thu, 13 Feb 2014 10:08:00 +0000 (11:08 +0100)
committerSascha Wildner <saw@online.de>
Thu, 13 Feb 2014 10:08:34 +0000 (11:08 +0100)
* No need to fix AMD topology in vkernel.

* Expose compute_unit_id in i386 too. It stays -1 always.

Reported-by: tuxillo
sys/kern/subr_cpu_topology.c
sys/sys/cpu_topology.h

index a1f4da5..7567dcd 100644 (file)
@@ -137,7 +137,10 @@ build_topology_tree(int *children_no_per_level,
        }
 }
 
-static void migrate_elements(cpu_node_t **a, int n, int pos) {
+#if defined(__x86_64__) && !defined(_KERNEL_VIRTUAL)
+static void
+migrate_elements(cpu_node_t **a, int n, int pos)
+{
        int i;
 
        for (i = pos; i < n - 1 ; i++) {
@@ -145,6 +148,7 @@ static void migrate_elements(cpu_node_t **a, int n, int pos) {
        }
        a[i] = NULL;
 }
+#endif
 
 /* Build CPU topology. The detection is made by comparing the
  * chip, core and logical IDs of each CPU with the IDs of the 
@@ -256,7 +260,7 @@ build_cpu_topology(void)
        cpu_root_node = root;
 
 
-#if defined(__x86_64__)
+#if defined(__x86_64__) && !defined(_KERNEL_VIRTUAL)
        if (fix_amd_topology() == 0) {
                int visited[MAXCPU], i, j, pos, cpuid;
                cpu_node_t *leaf, *parent;
index 182498c..213e30d 100644 (file)
@@ -10,9 +10,7 @@ struct cpu_node {
        uint32_t child_no;
        cpumask_t members;
        uint8_t type;
-#if defined(__x86_64__)
        uint8_t compute_unit_id; /* AMD compute unit ID */
-#endif
 };
 typedef struct cpu_node cpu_node_t;