Linux: increase max nvlist_src size
On Linux increase the maximum allowed size of the src nvlist which can be passed to the /dev/zfs ioctl. Originally, this was set to a maximum of KMALLOC_MAX_SIZE (4M) because it was kmalloc'd. Since that time it's been converted to a vmalloc so that's no longer a hard limit, and it's desirable for `zfs send/recv` to allow larger nvlists so more snapshots can be sent at once. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #6572 Closes #11638
This commit is contained in:
parent
db9b29895e
commit
fe77c48320
|
@ -1186,7 +1186,7 @@ amount of memory. When the limit is exceeded, the ioctl fails with EINVAL and a
|
|||
description of the error is sent to the zfs-dbgmsg log. This parameter should
|
||||
not need to be touched under normal circumstances. On FreeBSD, the default is
|
||||
based on the system limit on user wired memory. On Linux, the default is
|
||||
\fBKMALLOC_MAX_SIZE\fR .
|
||||
\fB128MB\fR.
|
||||
.sp
|
||||
Default value: \fB0\fR (kernel decides)
|
||||
.RE
|
||||
|
|
|
@ -209,7 +209,7 @@ zfs_max_nvlist_src_size_os(void)
|
|||
if (zfs_max_nvlist_src_size != 0)
|
||||
return (zfs_max_nvlist_src_size);
|
||||
|
||||
return (KMALLOC_MAX_SIZE);
|
||||
return (MIN(ptob(zfs_totalram_pages) / 4, 128 * 1024 * 1024));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue