Page MenuHomeFreeBSD

D24757.id71534.diff
No OneTemporary

D24757.id71534.diff

Index: sys/amd64/amd64/mp_machdep.c
===================================================================
--- sys/amd64/amd64/mp_machdep.c
+++ sys/amd64/amd64/mp_machdep.c
@@ -264,8 +264,9 @@
init_ops.start_all_aps();
set_interrupt_apic_ids();
-}
+ acpi_pxm_set_cpu_locality();
+}
/*
* AP CPU's call this to initialize themselves.
Index: sys/arm64/arm64/mp_machdep.c
===================================================================
--- sys/arm64/arm64/mp_machdep.c
+++ sys/arm64/arm64/mp_machdep.c
@@ -535,9 +535,7 @@
acpi_unmap_table(madt);
#if MAXMEMDOM > 1
- /* set proximity info */
acpi_pxm_set_cpu_locality();
- acpi_pxm_free();
#endif
}
#endif
Index: sys/dev/acpica/acpi_pxm.c
===================================================================
--- sys/dev/acpica/acpi_pxm.c
+++ sys/dev/acpica/acpi_pxm.c
@@ -628,7 +628,8 @@
}
/*
- * Setup per-CPU domain IDs from information saved in 'cpus'.
+ * Set up per-CPU domain IDs from information saved in 'cpus' and tear down data
+ * structures allocated by acpi_pxm_init().
*/
void
acpi_pxm_set_cpu_locality(void)
@@ -651,6 +652,9 @@
printf("SRAT: CPU %u has memory domain %d\n", i,
pc->pc_domain);
}
+ pmap_unmapbios((vm_offset_t)cpus, sizeof(*cpus) * max_cpus);
+ srat_physaddr = 0;
+ cpus = NULL;
}
int
@@ -664,20 +668,6 @@
return (cpu->domain);
}
-/*
- * Free data structures allocated during acpi_pxm_init.
- */
-void
-acpi_pxm_free(void)
-{
-
- if (srat_physaddr == 0)
- return;
- pmap_unmapbios((vm_offset_t)cpus, sizeof(*cpus) * max_cpus);
- srat_physaddr = 0;
- cpus = NULL;
-}
-
/*
* Map a _PXM value to a VM domain ID.
*
Index: sys/dev/acpica/acpivar.h
===================================================================
--- sys/dev/acpica/acpivar.h
+++ sys/dev/acpica/acpivar.h
@@ -540,7 +540,6 @@
void acpi_pxm_set_mem_locality(void);
void acpi_pxm_set_cpu_locality(void);
int acpi_pxm_get_cpu_locality(int apic_id);
-void acpi_pxm_free(void);
/*
* Map a PXM to a VM domain.
Index: sys/i386/i386/mp_machdep.c
===================================================================
--- sys/i386/i386/mp_machdep.c
+++ sys/i386/i386/mp_machdep.c
@@ -198,6 +198,8 @@
start_all_aps();
set_interrupt_apic_ids();
+
+ acpi_pxm_set_cpu_locality();
}
/*
Index: sys/x86/acpica/srat.c
===================================================================
--- sys/x86/acpica/srat.c
+++ sys/x86/acpica/srat.c
@@ -61,7 +61,6 @@
{
acpi_pxm_set_cpu_locality();
- acpi_pxm_free();
}
SYSINIT(srat_set_cpus, SI_SUB_CPU, SI_ORDER_ANY, srat_set_cpus, NULL);

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 16, 2:54 PM (7 h, 43 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33990454
Default Alt Text
D24757.id71534.diff (2 KB)

Event Timeline