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
f01eaed455
commit
1dfc82a14e
|
@ -1238,7 +1238,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
|
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
|
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
|
based on the system limit on user wired memory. On Linux, the default is
|
||||||
\fBKMALLOC_MAX_SIZE\fR .
|
\fB128MB\fR.
|
||||||
.sp
|
.sp
|
||||||
Default value: \fB0\fR (kernel decides)
|
Default value: \fB0\fR (kernel decides)
|
||||||
.RE
|
.RE
|
||||||
|
|
|
@ -209,7 +209,7 @@ zfs_max_nvlist_src_size_os(void)
|
||||||
if (zfs_max_nvlist_src_size != 0)
|
if (zfs_max_nvlist_src_size != 0)
|
||||||
return (zfs_max_nvlist_src_size);
|
return (zfs_max_nvlist_src_size);
|
||||||
|
|
||||||
return (KMALLOC_MAX_SIZE);
|
return (MIN(ptob(zfs_totalram_pages) / 4, 128 * 1024 * 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue