1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/sys
Jeff Roberson 22bf7d9a0e - Add static to local functions and data where it was missing.
- Add an IPI based mechanism for migrating kses.  This mechanism is
   broken down into several components.  This is intended to reduce cache
   thrashing by eliminating most cases where one cpu touches another's
   run queues.
 - kseq_notify() appends a kse to a lockless singly linked list and
   conditionally sends an IPI to the target processor.  Right now this is
   protected by sched_lock but at some point I'd like to get rid of the
   global lock.  This is why I used something more complicated than a
   standard queue.
 - kseq_assign() processes our list of kses that have been assigned to us
   by other processors.  This simply calls sched_add() for each item on the
   list after clearing the new KEF_ASSIGNED flag.  This flag is used to
   indicate that we have been appeneded to the assigned queue but not
   added to the run queue yet.
 - In sched_add(), instead of adding a KSE to another processor's queue we
   use kse_notify() so that we don't touch their queue.  Also in sched_add(),
   if KEF_ASSIGNED is already set return immediately.  This can happen if
   a thread is removed and readded so that the priority is recorded properly.
 - In sched_rem() return immediately if KEF_ASSIGNED is set.  All callers
   immediately readd simply to adjust priorites etc.
 - In sched_choose(), if we're running an IDLE task or the per cpu idle thread
   set our cpumask bit in 'kseq_idle' so that other processors may know that
   we are idle.  Before this, make a single pass through the run queues of
   other processors so that we may find work more immediately if it is
   available.
 - In sched_runnable(), don't scan each processor's run queue, they will IPI
   us if they have work for us to do.
 - In sched_add(), if we're adding a thread that can be migrated and we have
   plenty of work to do, try to migrate the thread to an idle kseq.
 - Simplify the logic in sched_prio() and take the KEF_ASSIGNED flag into
   consideration.
 - No longer use kseq_choose() to steal threads, it can lose it's last
   argument.
 - Create a new function runq_steal() which operates like runq_choose() but
   skips threads based on some criteria.  Currently it will not steal
   PRI_ITHD threads.  In the future this will be used for CPU binding.
 - Create a kseq_steal() that checks each run queue with runq_steal(), use
   kseq_steal() in the places where we used kseq_choose() to steal with
   before.
2003-10-31 11:16:04 +00:00
..
alpha style: strcmp() does not return a bool. 2003-10-30 23:00:15 +00:00
amd64 Include "opt_pmap.h" so that the DISABLE_P* options are honored. 2003-10-30 21:42:44 +00:00
arm Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bit 2003-09-25 01:10:26 +00:00
boot Directly call the 'reboot' word instead of indirectly evaluating it. 2003-10-28 17:18:42 +00:00
cam In camperiphdone(), make sure we check for fatal errors and bail out 2003-10-27 06:15:55 +00:00
coda Include <sys/mutex.h>. Don't depend on namespace pollution in <sys/vnode.h>. 2003-10-05 07:44:45 +00:00
compat Oops, forgot to save these in the editor. Add CTASSERTS for signal and 2003-10-30 02:43:19 +00:00
conf Fixup the sorting of some of the options. DISABLE_P* are still out of 2003-10-30 21:45:34 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r121642, 2003-10-29 04:25:17 +00:00
crypto Add a testcase which validates that the same buffer can be passed to 2003-10-19 22:12:23 +00:00
ddb Reworked rev.1.14. Use the ELF symbol type again to summarily reject 2003-09-28 06:02:33 +00:00
dev Reject too large OHCI version number. 2003-10-31 05:05:12 +00:00
fs Remember to check the DE_WHITEOUT flag in the case where a cloned 2003-10-20 15:08:10 +00:00
geom Close the right consumers if we run into trouble opening them all. 2003-10-24 18:47:31 +00:00
gnu Fix the alpha tinderbox. The alpha specific bitops used by the bitmap 2003-10-29 07:35:53 +00:00
i4b Initialize if_softc and use it in favor of &ipr_softc[ifp->if_unit] to 2003-10-31 00:44:56 +00:00
i386 Change the pmap_invalidate_xxx() functions so they test against 2003-10-30 22:15:22 +00:00
ia64 When switching the RSE to use the kernel stack as backing store, keep 2003-10-28 19:38:26 +00:00
isa Fix a panic that occurs when resuming. For some reason, sc->cur_scp is 2003-10-29 20:48:13 +00:00
isofs/cd9660 DuH! 2003-10-18 14:10:28 +00:00
kern - Add static to local functions and data where it was missing. 2003-10-31 11:16:04 +00:00
libkern - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
modules Add dumb console driver and related bits. 2003-10-24 15:44:10 +00:00
net Make TUNDEBUG use if_printf instead of printf. 2003-10-31 02:48:12 +00:00
net80211 fix station mode breakage (repeat after me: "test every change, no 2003-10-17 23:59:11 +00:00
netatalk Remove unnecessary casts to (caddr_t) for if_broadcastaddr. 2003-10-23 17:48:53 +00:00
netatm The number of prefixes can never be negative so use an u_int for this. 2003-07-29 13:46:43 +00:00
netgraph Netgraph part of the NgATM signalling AA layer. These nodes can 2003-10-24 07:39:11 +00:00
netinet Overhaul routing table entry cleanup by introducing a new rtexpunge 2003-10-30 23:02:51 +00:00
netinet6 Overhaul routing table entry cleanup by introducing a new rtexpunge 2003-10-30 23:02:51 +00:00
netipsec MFp4: portability work, general cleanup, locking fixes 2003-09-29 22:57:43 +00:00
netipx Fix a bunch of off-by-one errors in the range checking code. 2003-09-11 21:40:21 +00:00
netkey mib name was changed by fixing a spelling. 2003-10-28 16:16:04 +00:00
netnatm Remove the last vestiges of ATM raw mode. This has not been useful for a 2003-08-06 14:34:38 +00:00
netncp The present defaults for the open and close for device drivers which 2003-09-27 12:01:01 +00:00
netsmb - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
nfs
nfsclient DuH! 2003-10-18 14:10:28 +00:00
nfsserver When grabbing vnodes to service NFS requests, make sure to call 2003-10-24 18:36:49 +00:00
opencrypto falloc allocates a file structure and adds it to the file descriptor 2003-10-19 20:41:07 +00:00
pc98 MFi386: revision 1.577. 2003-10-19 11:35:44 +00:00
pccard Change all SYSCTLS which are readonly and have a related TUNABLE 2003-10-21 18:28:36 +00:00
pci mark interrupt handlers MPSAFE 2003-10-29 18:32:14 +00:00
posix4 sched_setscheduler: Return EINVAL when a invalid policy is specified, 2003-09-13 18:46:24 +00:00
powerpc Add a stub cpu_idle() function for sparc64, alpha, powerpc. This is a 2003-10-19 02:36:07 +00:00
rpc
security Make MAC_EXTERNALIZE() and MAC_INTERNALIZE() simply take the object 2003-10-25 15:28:20 +00:00
sparc64 Add a stub cpu_idle() function for sparc64, alpha, powerpc. This is a 2003-10-19 02:36:07 +00:00
sys - Add 4 kse flags for use in the schedulers. 2003-10-31 11:02:16 +00:00
tools Changes for new SMP-safe kobj method dispatch algorithm. 2003-10-16 13:29:26 +00:00
ufs Tweak the calculation of minbfree in ffs_dirpref() so that only 2003-10-31 07:25:06 +00:00
vm Fix two bugs introduced with the rstack functionality and specific to 2003-10-31 07:29:28 +00:00
Makefile Revert exclusion for amd64 that stopped boot/ being built. 2003-06-26 03:52:48 +00:00