cvs commit: src/sys/dev/disk/nata ata-all.h ata-queue.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jun 27 18:08:45 PDT 2008
dillon 2008/06/27 18:06:40 PDT
DragonFly src repository
Modified files:
sys/dev/disk/nata ata-all.h ata-queue.c
Log:
Fix a system performance issue created by ata_sort_queue(). This function
implements an elevator sort but it also allows requests to be delayed
indefinitely when other requests continually get inserted in front of them.
HAMMER's almost log-linear writing really exposes this issue.
The fix is to count how many times a request got delayed due to an insertion.
If the count exceeds 8, the new request is placed at the end of the queue and
set as the new freeze point.
Revision Changes Path
1.11 +1 -0 src/sys/dev/disk/nata/ata-all.h
1.9 +16 -1 src/sys/dev/disk/nata/ata-queue.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/nata/ata-all.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/nata/ata-queue.c.diff?r1=1.8&r2=1.9&f=u
More information about the Commits
mailing list