cvs commit: src/sys/kern subr_diskgpt.c subr_disklabel64.c vfs_aio.c src/sys/vfs/specfs spec_vnops.c src/sys/vm vm_swap.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jul 20 10:22:51 PDT 2007
dillon 2007/07/20 10:21:54 PDT
DragonFly src repository
Modified files:
sys/kern subr_diskgpt.c subr_disklabel64.c
vfs_aio.c
sys/vfs/specfs spec_vnops.c
sys/vm vm_swap.c
Log:
Remove the requirement that calls to vn_strategy() be limited to the
DMA capabilities of the underlying device. In particular this fixes issues
with NATA which does not break up large requests when operating on hardware
with limited DMA capabilities. The old ATA driver did break up requests.
vn_strategy() -> spec_strategy(). spec_strategy(), which converts vnode
strategy calls to device strategy calls, now checks the maximum DMA
capability of the device and breaks up large requests to fit.
Old IDE hardware often can't even transfer a whole 64KB of data and there
are many subsystems in the kernel which assume that >= 64KB can be transfered
in a single I/O. Subsystems include: The pageout code, the buffer clustering
code, AIO, and the swapin/swapout code.
Reported-by: YONETANI Tomokazu <qhwt+dfly at les.ath.cx>
Revision Changes Path
1.4 +3 -0 src/sys/kern/subr_diskgpt.c
1.5 +6 -0 src/sys/kern/subr_disklabel64.c
1.42 +6 -2 src/sys/kern/vfs_aio.c
1.52 +157 -2 src/sys/vfs/specfs/spec_vnops.c
1.36 +3 -2 src/sys/vm/vm_swap.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_diskgpt.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_disklabel64.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_aio.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/specfs/spec_vnops.c.diff?r1=1.51&r2=1.52&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_swap.c.diff?r1=1.35&r2=1.36&f=u
More information about the Commits
mailing list