Split the IPIQ messaging out of lwkt_thread.c and move it to its own file,
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 15 Feb 2004 02:14:42 +0000 (02:14 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 15 Feb 2004 02:14:42 +0000 (02:14 +0000)
commit3b6b7bd1d621250496d43dffff015e5c7bb452e1
tree980cd89b738b896176c8604bf3e7c40b190851bb
parentea475962fe16aa5cbb4808e4428131b549340ced
Split the IPIQ messaging out of lwkt_thread.c and move it to its own file,
lwkt_ipiq.c.

Add a MI synchronous cpu rendezvous API lwkt_cpusync_*().  This API allows the
kernel to synchronize an operation across any number of cpus.  Multiple cpus
can initiate synchronization operations simultaniously without creating a
deadlock.  The API utilizes the IPI messaging core and guarentees that
other synchronization and IPI messaging operations will continue to work
during any given synchronization op.  The API is a spin-blocking API, meaning
that it will not switch threads and can be used by mainline code, interrupts,
and other sensitive code.

This API is intended to replace smp_rendezvous(), Xcpustop, and other
hardwired IPI ops.  It will also be used to fix our TLB shootdown code.

As of this commit the API has not yet been connected to anything and has
been tested only a little.
sys/conf/files
sys/kern/lwkt_ipiq.c [new file with mode: 0644]
sys/kern/lwkt_thread.c
sys/sys/globaldata.h
sys/sys/thread.h