freebsd-src/sys
Luigi Rizzo d4619572b4 Clarify and reimplement the bioq API so that bioq_disksort() has
the correct behaviour (sorting by distance from the current head position
in the scan direction) and bioq_insert_head() and bioq_insert_tail()
have a well defined (and useful) behaviour, especially when intermixed
with calls to bioq_disksort().

In particular:
- fix a bug in the existing bioq_disksort() that did not use the
  current head position correctly;
- redefine semantics of bioq_insert_head() and bioq_insert_tail().
  bioq_insert_tail() can now be used as a barrier
  between previous and subsequent calls to bioq_disksort().

The code is heavily documented in the source code so please refer
to that for the details.

Much of this code comes from Fabio Checconi. Also thanks to Kirk
for feedback on the (re)definition of bioq_insert_tail().

NOTE: in the current tree there is only a handful of files which
intermix calls to bioq_disksort() with bioq_insert_head() and
bioq_insert_tail(). The ordering of the queue in these situation
was not specified (nor easy to figure out) before, so I doubt any
of that code could be affected by the specification of the API.

Also note that the current implementation is significantly simpler
than the previous one (also used in ata_sort_queue()).
It would be useful to reimplement ata_sort_queue() using
the same code used in bioq_disksort().

MFC after:	1 week
2009-02-13 11:36:32 +00:00
..
amd64 Add option GEOM_PART_EBR by default on amd64 and i386. 2009-02-10 00:08:39 +00:00
arm To prevent various race conditions in the RAS code, store and restore the 2009-02-12 23:23:30 +00:00
boot - Use the generally more appropriate PROM base rather than the 2009-02-10 21:48:42 +00:00
bsm Merge OpenBSM alpha 5 from OpenBSM vendor branch to head, both 2009-01-14 10:44:16 +00:00
cam In the case that the probe has determined that it can't query the device for 2009-02-13 10:04:59 +00:00
cddl Last step of splitting up minor and unit numbers: remove minor(). 2009-01-28 17:57:16 +00:00
compat Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
conf Add option GEOM_PART_EBR by default on amd64 and i386. 2009-02-10 00:08:39 +00:00
contrib Revert my previous two changes. 2009-01-25 16:52:41 +00:00
crypto identify routine takes driver_t *, not device_t *. 2009-02-05 19:30:28 +00:00
ddb Collect N identical (or near identical) mkdumpheader() implementations into 2008-10-01 22:08:53 +00:00
dev add SIOCZATHSTATS ioctl to zero driver statistics 2009-02-13 05:38:03 +00:00
fs - Consolidate error handling in the cd9660 and udf mount routines. 2009-02-11 22:22:26 +00:00
gdb
geom - Use the correct argument when determining the buffer size. 2009-02-11 18:13:20 +00:00
gnu - Eliminate warnings in debug print macros by explicitly converting all 2009-01-18 15:10:46 +00:00
i386 Add option GEOM_PART_EBR by default on amd64 and i386. 2009-02-10 00:08:39 +00:00
ia64 Mark the BSP as being awake. This supresses the message 2009-02-10 20:29:57 +00:00
isa Allow device hints to wire the unit numbers of devices. 2008-11-18 21:01:54 +00:00
kern Clarify and reimplement the bioq API so that bioq_disksort() has 2009-02-13 11:36:32 +00:00
kgssapi Call svc_freereq() before returning from the service proc. 2008-11-12 15:31:05 +00:00
libkern Add simple locking for the in-kernel iconv code. Translation operations 2008-12-05 21:19:24 +00:00
mips Rewrite get_pv_entry() to match expectations of the rest of the 2009-02-12 01:14:49 +00:00
modules Unbreak build by making svr4 conditional on i386. 2009-02-12 21:01:16 +00:00
net Remove unused ifaddr local variable in ioctl routine. 2009-02-13 00:01:11 +00:00
net80211 remove ic_stats; it was intended to accumulate stats from vaps as they 2009-02-13 05:31:18 +00:00
netatalk Remove local variable 'ddp' from DDP's attach and detach routines; they 2009-02-04 20:04:32 +00:00
netgraph Update comment. soalloc() is no longer performing M_WAITOK memory allocations. 2009-02-10 20:27:05 +00:00
netinet Add padding to then end of the xsctp_xxx structures to 2009-02-09 17:37:17 +00:00
netinet6 Try to remove/assimilate as much of formerly IPv4/6 specific 2009-02-08 09:27:07 +00:00
netipsec Try to remove/assimilate as much of formerly IPv4/6 specific 2009-02-08 09:27:07 +00:00
netipx Add missing "goto set_head" for SO_IPX_CHECKSUM; otherwise we fall through 2008-12-11 10:29:35 +00:00
netnatm Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netncp Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
netsmb Implement device cloning for /dev/nsmb, the netsmb control pseudo-device. 2008-11-03 14:23:15 +00:00
nfs
nfs4client Last step of splitting up minor and unit numbers: remove minor(). 2009-01-28 17:57:16 +00:00
nfsclient Last step of splitting up minor and unit numbers: remove minor(). 2009-01-28 17:57:16 +00:00
nfsserver Audit the flag argument to the nfssvc(2) system call. 2009-02-08 14:04:08 +00:00
nlm Don't call svc_freereq() before svc_freeargs(). 2008-11-12 15:30:30 +00:00
opencrypto Fix return type for detach routine (should be int) 2009-02-05 17:43:12 +00:00
pc98 Bring missing comments on EPSON_BOUNCEDMA and EPSON_MEMWIN flags. 2009-02-08 10:21:25 +00:00
pccard
pci Allocating 2 MSI messages do not seem to work on certain controllers 2009-02-11 00:23:56 +00:00
powerpc Add support for the I2S and davbus audio controllers found in Apple PowerPC 2009-01-25 18:20:15 +00:00
rpc Use the correct creds when reconnecting so that we have enough privilege to 2009-02-05 11:48:10 +00:00
security Set the lower bound on queue size for an audit pipe to 1 instead of 0, 2009-02-08 15:38:31 +00:00
sparc64 Improve r185008 so the streaming cache is only flushed when 2009-02-10 21:51:33 +00:00
sun4v - Use the generally more appropriate PROM base rather than the 2009-02-11 07:50:07 +00:00
sys Serialize write() calls on TTYs. 2009-02-11 16:28:49 +00:00
tools Remove some unused and broken code that attempted to not invoke locking 2008-11-03 19:57:40 +00:00
ufs - If the g_access() call for the initial root mount fails, then fully 2009-02-11 22:19:54 +00:00
vm Comment out the assertion from r188321. It is not valid for nfs. 2009-02-09 11:32:23 +00:00
xdr Use the remote address for access control, not the local address. This fixes 2008-11-13 14:36:52 +00:00
xen merge 186535, 186537, and 186538 from releng_7_xen 2008-12-29 06:31:03 +00:00
Makefile Improve the glimpse target: don't index .svn and compile directories. 2008-08-15 14:11:30 +00:00