freebsd-src/sys
Luigi Rizzo 67c1af9d00 Correct a subtle bug in the 'gsched_rr' disk scheduler.
The algorithm is supposed to work as follows:
in order to prevent starvation, when a new client starts being served we
record the start time and reset the counter of bytes served.
We then switch to a new client after a certain amount of time or bytes,
even if the current one still has pending requests.
To avoid charging a new client the time of the first seek,
we start counting time when the first request is served.

Unfortunately a bug in the previous version of the code failed
to set the start time in certain cases, resulting in some processes
exceeding their timeslice.

The fix (in this patch) is trivial, though it took a while to find
out and replicate the bug.
Thanks to Tommaso Caprai for investigating and fixing the problem.

Submitted by:	Tommaso Caprai
MFC after:	1 week
2011-02-14 08:09:02 +00:00
..
amd64 Sort include files in the alphabetical order. 2011-02-13 19:07:48 +00:00
arm Oops, wasn't supposed to commit this. 2011-02-13 20:04:29 +00:00
boot Fix build. 2011-02-12 06:22:23 +00:00
bsm
cam In addition to r217444 ignore also ATA status errors on DMA Auto-Activation 2011-01-26 06:57:48 +00:00
cddl Use the preload_fetch_addr() and preload_fetch_size() convenience 2011-02-13 19:46:55 +00:00
compat Sort include files in the alphabetical order. 2011-02-13 20:07:48 +00:00
conf Add missing USB_HOST_ALIGN option. 2011-02-12 21:17:38 +00:00
contrib Merge ACPICA 20110211. 2011-02-12 01:03:15 +00:00
crypto Remove DEBUG sections. 2010-11-27 15:41:44 +00:00
ddb sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:54:19 +00:00
dev Use the preload_fetch_addr() and preload_fetch_size() convenience 2011-02-13 19:26:51 +00:00
fs Eliminate tn_reg.tn_aobj_pages. Instead, correctly maintain the vm 2011-02-13 14:46:39 +00:00
gdb
geom Correct a subtle bug in the 'gsched_rr' disk scheduler. 2011-02-14 08:09:02 +00:00
gnu Remove prtactive variable and related printf()s in the vop_inactive 2010-11-19 21:17:34 +00:00
i386 Sort include files in the alphabetical order. 2011-02-13 19:07:48 +00:00
ia64 Comment-out FLOWTABLE. It causes a kernel panic due to a misaligned memory 2011-02-06 22:18:37 +00:00
isa
kern Allow the SO_SETFIB socket option to select the default (0) 2011-02-13 00:14:13 +00:00
kgssapi
libkern Add support for asterisk characters when filling in the GELI password 2010-11-14 14:12:43 +00:00
mips The Lanner MR-730 uses the first two MACs at its MAC base for the 10/100 2011-02-12 02:41:33 +00:00
modules Move linux_clone(), linux_fork(), linux_vfork() to a MI path. 2011-02-12 18:17:12 +00:00
net Mfp4 CH=177255: 2011-02-11 14:17:58 +00:00
net80211 Instead of always returning 0 to a scan request, indicate if there is 2011-01-30 14:05:21 +00:00
netatalk
netgraph sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:53:39 +00:00
netinet Fix a bug reported by Jonathan Leighton in his web-sctp testing 2011-02-13 14:48:11 +00:00
netinet6 Fix bugs related to M_FLOWID: 2011-02-07 15:04:23 +00:00
netipsec After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
netipx
netnatm
netncp
netsmb Change some variables from int to size_t. This is more accurate since 2011-01-08 23:06:54 +00:00
nfs Modify the experimental NFSv4 server so that it posts a SIGUSR2 2011-01-14 23:30:35 +00:00
nfsclient Fix the nlm so that it no longer depends on the regular 2011-01-03 20:37:31 +00:00
nfsserver Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
nlm sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:54:19 +00:00
opencrypto Let cryptosoft(4) add its pseudo-device with a specific unit number and its 2010-11-14 13:09:32 +00:00
pc98 Based on discussions on the svn-src mailing list, rework r218195: 2011-02-08 00:16:36 +00:00
pci Add support for RTL8105E PCIe Fast Ethernet controller. It seems 2011-01-26 21:14:20 +00:00
powerpc Put the general logic for being a CPU hog into a new function 2011-02-02 16:35:10 +00:00
rpc sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:54:19 +00:00
security Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
sparc64 Set td_kstack_pages for thread0. 2011-02-08 23:21:35 +00:00
sun4v Put the general logic for being a CPU hog into a new function 2011-02-02 16:35:10 +00:00
sys Retire mp_fixme(). It's no longer used. 2011-02-14 02:37:27 +00:00
teken Use proper bounds checking on VPA. 2010-12-05 10:15:23 +00:00
tools
ufs Use the native sector size of the device backing the UFS volume for SU+J 2011-02-12 12:52:12 +00:00
vm Lock the vnode around clearing of VV_TEXT flag. Remove mp_fixme() note 2011-02-13 21:52:26 +00:00
x86 Use a dedicated taskqueue with a thread that runs at a software-interrupt 2011-02-03 13:09:22 +00:00
xdr
xen Fix a few more SYSCTL_PROC() that were missing a CTLFLAG type specifier. 2011-01-19 00:57:58 +00:00
Makefile Add lex and yacc sources to things cscope'd. 2010-11-21 03:58:11 +00:00