aboutsummaryrefslogtreecommitdiff
path: root/sbin/mdconfig
diff options
context:
space:
mode:
authorLuigi Rizzo <luigi@FreeBSD.org>2011-02-14 08:09:02 +0000
committerLuigi Rizzo <luigi@FreeBSD.org>2011-02-14 08:09:02 +0000
commit67c1af9d00220a7f3fb211573e983700c802909f (patch)
tree181b5aa602167c64e72f5e24ffd9190878b5bf77 /sbin/mdconfig
parent4fb70884909a7dae2d55e5cd50897a953390558a (diff)
downloadsrc-67c1af9d00220a7f3fb211573e983700c802909f.tar.gz
src-67c1af9d00220a7f3fb211573e983700c802909f.zip
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
Notes
Notes: svn path=/head/; revision=218675
Diffstat (limited to 'sbin/mdconfig')
0 files changed, 0 insertions, 0 deletions