]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Change XCOPY memory allocations.
authormav <mav@FreeBSD.org>
Sat, 18 Feb 2017 06:03:16 +0000 (06:03 +0000)
committermav <mav@FreeBSD.org>
Sat, 18 Feb 2017 06:03:16 +0000 (06:03 +0000)
commite2c942137bc17dd5bb074b9706f2db2e353f303c
treeaaed2bedd0addbcde138bae14b1d3f2f5a55d968
parent05d5c84b5505aee09855b25525e8a56760fb097b
Change XCOPY memory allocations.

Before this change XCOPY code could allocate memory in chunks up to 16-32MB
(VMware does XCOPY in 4MB chunks by default), that could be difficult for
VM subsystem to do due to KVA fragmentation, that sometimes created huge
allocation delays, blocking any I/O for respective LU for that time.

This change limits allocations down to TPC_MAX_IO_SIZE, which is 1MB now.
1MB is also not a cookie, but ZFS also can do that for large blocks, so
it should be less dramatic.  As drawback this increases CPU overhead, but
it still look acceptable comparing to time consumed by ZFS read/write.

MFC after: 1 week
sys/cam/ctl/ctl_tpc.c