1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-17 15:27:36 +00:00
freebsd/sys
John Baldwin 44f3b09204 Switch the sleep/wakeup and condition variable implementations to use the
sleep queue interface:
- Sleep queues attempt to merge some of the benefits of both sleep queues
  and condition variables.  Having sleep qeueus in a hash table avoids
  having to allocate a queue head for each wait channel.  Thus, struct cv
  has shrunk down to just a single char * pointer now.  However, the
  hash table does not hold threads directly, but queue heads.  This means
  that once you have located a queue in the hash bucket, you no longer have
  to walk the rest of the hash chain looking for threads.  Instead, you have
  a list of all the threads sleeping on that wait channel.
- Outside of the sleepq code and the sleep/cv code the kernel no longer
  differentiates between cv's and sleep/wakeup.  For example, calls to
  abortsleep() and cv_abort() are replaced with a call to sleepq_abort().
  Thus, the TDF_CVWAITQ flag is removed.  Also, calls to unsleep() and
  cv_waitq_remove() have been replaced with calls to sleepq_remove().
- The sched_sleep() function no longer accepts a priority argument as
  sleep's no longer inherently bump the priority.  Instead, this is soley
  a propery of msleep() which explicitly calls sched_prio() before
  blocking.
- The TDF_ONSLEEPQ flag has been dropped as it was never used.  The
  associated TDF_SET_ONSLEEPQ and TDF_CLR_ON_SLEEPQ macros have also been
  dropped and replaced with a single explicit clearing of td_wchan.
  TD_SET_ONSLEEPQ() would really have only made sense if it had taken
  the wait channel and message as arguments anyway.  Now that that only
  happens in one place, a macro would be overkill.
2004-02-27 18:52:44 +00:00
..
alpha Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
amd64 Since we don't use PG_NX yet, don't turn on EFER_NXE quite yet. This needs 2004-02-25 23:12:39 +00:00
arm
boot For some reason crt0.o needs to be linked first for pxeboot(8) to 2004-02-27 14:10:09 +00:00
cam Check that periph is non-NULL before dereferencing it. 2004-02-22 01:14:54 +00:00
coda Device megapatch 5/6: 2004-02-21 21:32:15 +00:00
compat Regen (FWIW) 2004-02-21 23:38:58 +00:00
conf Switch the sleep/wakeup and condition variable implementations to use the 2004-02-27 18:52:44 +00:00
contrib Tweak existing header and other build infrastructure to be able to build 2004-02-26 03:53:54 +00:00
crypto
ddb Switch the sleep/wakeup and condition variable implementations to use the 2004-02-27 18:52:44 +00:00
dev Make mode setting with fdcontrol(8) stick. 2004-02-25 13:44:58 +00:00
fs Do not attempt to open NODEV 2004-02-24 09:59:35 +00:00
geom Even if we're sure that we can't be orphaned here, we have to define 2004-02-27 15:34:21 +00:00
gnu Enforce the file size limit in VOP_WRITE() as well as VOP_TRUNCATE(); 2004-02-19 09:06:06 +00:00
i4b Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
i386 Fixed the latest unsortings of CPU_ENABLE_*. 2004-02-24 04:18:07 +00:00
ia64 Do not pre-map the I/O port space. On the Intel Tiger 4 this conflicts 2004-02-22 02:10:48 +00:00
isa Make mode setting with fdcontrol(8) stick. 2004-02-25 13:44:58 +00:00
isofs/cd9660 Fix comment containing vop_readdir_args contents: a_cookies is really 2004-02-23 01:43:00 +00:00
kern Switch the sleep/wakeup and condition variable implementations to use the 2004-02-27 18:52:44 +00:00
libkern
modules Tweak existing header and other build infrastructure to be able to build 2004-02-26 03:53:54 +00:00
net Bring eventhandler callbacks for pf. 2004-02-26 04:27:55 +00:00
net80211
netatalk
netatm Don't remove the first mbuf in the chain if it got empty. 2004-02-21 12:55:07 +00:00
netgraph Unconst. Somebody didn't compile LINT. 2004-02-24 22:16:40 +00:00
netinet Bring eventhandler callbacks for pf. 2004-02-26 04:27:55 +00:00
netinet6 Bring eventhandler callbacks for pf. 2004-02-26 04:27:55 +00:00
netipsec
netipx
netkey
netnatm
netncp Split the mlock() kernel code into two parts, mlock(), which unpacks 2004-02-26 00:27:04 +00:00
netsmb Split the mlock() kernel code into two parts, mlock(), which unpacks 2004-02-26 00:27:04 +00:00
nfs
nfs4client protect new cdevsw entries with "#if (__FreeBSD_version > 502102)" 2004-02-22 05:49:38 +00:00
nfsclient If mountnfs returns an error, it will have already freed nam; no need to 2004-02-22 01:17:47 +00:00
nfsserver
opencrypto Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
pc98 Merged from sys/isa/fd.c revision 1.266. 2004-02-26 14:59:10 +00:00
pccard Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
pci Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
posix4
powerpc
rpc
security Forward declare struct proc, struct sockaddr, and struct thread, which 2004-02-26 20:44:50 +00:00
sparc64 Device megapatch 4/6: 2004-02-21 21:10:55 +00:00
sys Switch the sleep/wakeup and condition variable implementations to use the 2004-02-27 18:52:44 +00:00
tools
ufs A more accurate test in the new ufs_lock than that in 1.235. 2004-02-23 19:05:05 +00:00
vm Split the mlock() kernel code into two parts, mlock(), which unpacks 2004-02-26 00:27:04 +00:00
Makefile