]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Limit max_hw_sectors_kb to 16M
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 28 Aug 2015 00:01:59 +0000 (17:01 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 28 Aug 2015 16:16:59 +0000 (09:16 -0700)
commitc495fe2c1c6b1c63aefcd832e2e0eb0a20d4c4dc
treed0f8581df9f29806d304af8bc9e58f48f21f5f03
parent5475aada9474464f973788c1b2fc6216486fb303
Limit max_hw_sectors_kb to 16M

When support for large blocks was added DMU_MAX_ACCESS was increased
to allow for blocks of up to 16M to fit in a transaction handle.
This had the side effect of increasing the max_hw_sectors_kb for
volumes, which are scaled off DMU_MAX_ACCESS, to 64M from 10M.

This is an issue for volumes which by default use an 8K block size
because it results in dmu_buf_hold_array_by_dnode() allocating a
64K array for the dbufs.  The solution is to restore the maximum
size to ~10M.  This patch specifically changes it to 16M which is
close enough.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #3684
module/zfs/zvol.c