freebsd-dev/sys/geom
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
..
bde Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
cache Fixed cache size decoding read from a label. 2010-07-14 08:22:00 +00:00
concat Add support for dumping kernel to gconcat. 2010-09-16 17:24:25 +00:00
eli Use the preload_fetch_addr() and preload_fetch_size() convenience 2011-02-13 19:34:48 +00:00
gate 'unit' can be negative, so use signed type for it. 2010-06-14 21:58:55 +00:00
journal Treat async buffer writes from the gjournal switcher thread the same as 2011-01-26 10:34:21 +00:00
label - Report an error when a label with invalid name is attempted to be 2010-12-01 19:24:07 +00:00
linux_lvm - Apply the same naming rules of LVM names as done in the LVM code itself. 2009-06-24 22:09:30 +00:00
mirror - Allow to specify value as const pointers. 2010-09-13 08:56:07 +00:00
mountver Make sure not to pass NULL to g_orphan_provider(). 2010-06-05 08:00:52 +00:00
multipath Yet another potential dereference of a dead provider. 2010-05-14 21:27:39 +00:00
nop Sector size can not be greater than MAXPHYS. 2011-01-12 12:26:10 +00:00
part Add support to write boot menu. 2011-02-11 13:18:00 +00:00
raid3 Sector size can not be greater than MAXPHYS. Since GRAID3 calculates 2011-01-12 13:55:01 +00:00
sched Correct a subtle bug in the 'gsched_rr' disk scheduler. 2011-02-14 08:09:02 +00:00
shsec If provider is open for writing when we taste it, skip it for classes that 2009-10-09 09:42:22 +00:00
stripe Correct comment. 2010-02-18 22:28:12 +00:00
uzip Change the way in which zero stripesize is handled. Instead of reporting 2010-01-06 13:14:37 +00:00
vinum - Check flag with the bitwise operator, not the logical operator. 2010-10-01 06:12:13 +00:00
virstor Replace strlen(_PATH_DEV) with sizeof(_PATH_DEV) - 1. 2010-10-09 20:20:27 +00:00
zero In g_zero_destroy_geom(), return 0 instead of EBUSY in the success case. 2010-05-10 19:08:53 +00:00
geom_aes.c
geom_bsd_enc.c Decode as many or as few partition entries as the label claims there 2007-12-09 22:44:22 +00:00
geom_bsd.c Trivial patch to show on which geom has the error been detected. 2008-12-01 15:02:00 +00:00
geom_ccd.c - Fix a potential NULL pointer reference. Note that this should not happen in 2008-11-25 20:28:33 +00:00
geom_ctl.c Finish r210923, 210926. Mark some devices as eternal. 2011-01-04 10:59:38 +00:00
geom_ctl.h
geom_dev.c Use make_dev_p(9) with the MAKEDEV_CHECKNAME flag instead of make_dev(9) 2010-10-19 16:48:49 +00:00
geom_disk.c Remove the CTLFLAG_NOLOCK as it seems to be both unused and 2011-01-26 22:48:09 +00:00
geom_disk.h Export PCI IDs of ATA/SATA controllers through CAM and ata(4) layers to 2010-07-25 15:43:52 +00:00
geom_dump.c Escape characters unsafe for XML output in GEOM class, instance and 2010-03-20 16:16:13 +00:00
geom_event.c Use g_eventlock to protect against losing wakeups in the g_event process 2010-11-22 16:47:53 +00:00
geom_fox.c
geom_int.h
geom_io.c Correct bioq_disksort so that bioq_insert_tail() offers barrier semantic. 2010-09-02 19:40:28 +00:00
geom_kern.c Use g_eventlock to protect against losing wakeups in the g_event process 2010-11-22 16:47:53 +00:00
geom_mbr_enc.c
geom_mbr.c
geom_pc98_enc.c
geom_pc98.c
geom_redboot.c - Give geom_redboot taste of flash/spi. Now there is another provider 2010-02-03 01:12:19 +00:00
geom_slice.c Change the way in which zero stripesize is handled. Instead of reporting 2010-01-06 13:14:37 +00:00
geom_slice.h
geom_subr.c Fix deadlock between GEOM class unloading and withering. Withering can't 2010-05-05 18:53:24 +00:00
geom_sunlabel_enc.c
geom_sunlabel.c
geom_vfs.c g_vfs_open: allow only one mount per device vnode 2010-04-03 08:53:53 +00:00
geom_vfs.h Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
geom_vol_ffs.c
geom.h Fix deadlock between GEOM class unloading and withering. Withering can't 2010-05-05 18:53:24 +00:00
notes