[[!template id=project
title="More intelligent buffer queue management"
contact="""
[tech-kern](mailto:tech-kern@NetBSD.org)
"""
category="kernel"
difficulty="medium"
duration="2-3 months"
description="""
NetBSD has a fixed, kernel-wide upper limit on transfer size, called MAXPHYS, which is currently
set to 64k on most ports. This is too small to perform well on modern
IDE and SCSI hardware; on the other hand some devices can't do more than 64k,
and in some cases are even limited to less (the Xen virtual block device for
example). Software RAID will also cause requests to be split in multiple
smaller requests.
There is currently work in progress to make MAXPHYS configured at
runtime based on driver capability.
At least some of it is committed on the tls-maxphys branch.
This project originaly suggested instead to make the buffer queue
management logic (which currently only sorts the queue, aka disksort)
capable of splitting too-large buffers or aggregating small contiguous
buffers in order to conform to device-level requirements.
Once the MAXPHYS changes are finalized and committed, this project may
be simply outdated. However, it may also be worthwhile to pursue this
idea as well, particularly the aggregation part.
"""
]]