summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/smp.h
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2008-03-02 07:58:42 +0000
committerjeff <jeff@FreeBSD.org>2008-03-02 07:58:42 +0000
commitad2a31513f336da73b206794695829f59113b3a7 (patch)
treea49a50ce8694ae981e503de20b9650bb0f5a1776 /sys/i386/include/smp.h
parent0a56287482dbdc42be0a66082c61cf783dd56d5f (diff)
downloadFreeBSD-src-ad2a31513f336da73b206794695829f59113b3a7.zip
FreeBSD-src-ad2a31513f336da73b206794695829f59113b3a7.tar.gz
- Remove the old smp cpu topology specification with a new, more flexible
tree structure that encodes the level of cache sharing and other properties. - Provide several convenience functions for creating one and two level cpu trees as well as a default flat topology. The system now always has some topology. - On i386 and amd64 create a seperate level in the hierarchy for HTT and multi-core cpus. This will allow the scheduler to intelligently load balance non-uniform cores. Presently we don't detect what level of the cache hierarchy is shared at each level in the topology. - Add a mechanism for testing common topologies that have more information than the MD code is able to provide via the kern.smp.topology tunable. This should be considered a debugging tool only and not a stable api. Sponsored by: Nokia
Diffstat (limited to 'sys/i386/include/smp.h')
-rw-r--r--sys/i386/include/smp.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/i386/include/smp.h b/sys/i386/include/smp.h
index 264fb7f..acfd14a 100644
--- a/sys/i386/include/smp.h
+++ b/sys/i386/include/smp.h
@@ -45,6 +45,10 @@ extern u_long *ipi_rendezvous_counts[MAXCPU];
extern u_long *ipi_lazypmap_counts[MAXCPU];
#endif
+/* global data in identcpu.c */
+extern int cpu_cores;
+extern int cpu_logical;
+
/* IPI handlers */
inthand_t
IDTVEC(invltlb), /* TLB shootdowns - global */
@@ -67,7 +71,6 @@ void ipi_self(u_int ipi);
void ipi_bitmap_handler(struct trapframe frame);
u_int mp_bootaddress(u_int);
int mp_grab_cpu_hlt(void);
-void mp_topology(void);
void smp_cache_flush(void);
void smp_invlpg(vm_offset_t addr);
void smp_masked_invlpg(u_int mask, vm_offset_t addr);
OpenPOWER on IntegriCloud