]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r313910: Change XCOPY memory allocations.
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 25 Feb 2017 01:53:45 +0000 (01:53 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 25 Feb 2017 01:53:45 +0000 (01:53 +0000)
commitcf36515d0f3e9f84d4dcd57f0ad052b1c7690820
treefae51ea1243c9326d6517f0161564f3a06c3f6d4
parent5493ece53b2db13ca1030652c61fdc05618d9015
MFC r313910: 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.

git-svn-id: svn://svn.freebsd.org/base/stable/10@314238 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/ctl/ctl_tpc.c