diff options
author | mav <mav@FreeBSD.org> | 2015-10-14 10:28:29 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2015-10-14 10:28:29 +0000 |
commit | 89a4cb886e13bdfef3d3ee5f241359e0f534bbc9 (patch) | |
tree | be05306858bfe7c40e6f23381741c20d6deb748d | |
parent | 176234430e93ca5a44579b9c7234e756f07ee271 (diff) | |
download | FreeBSD-src-89a4cb886e13bdfef3d3ee5f241359e0f534bbc9.zip FreeBSD-src-89a4cb886e13bdfef3d3ee5f241359e0f534bbc9.tar.gz |
MFV r289304: 6293 ztest failure: error == 28 (0xc == 0x1c) in ztest_tx_assign()
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Matthew Ahrens <mahrens@delphix.com>
illumos/illumos-gate@8fe00bfb8790ad51653f67b01d5ac14256cbb404
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index 08d4f31..5269359 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -5295,6 +5295,16 @@ arc_init(void) arc_c_max = arc_c_min; arc_c_max = MAX(arc_c * 5, arc_c_max); + /* + * In userland, there's only the memory pressure that we artificially + * create (see arc_available_memory()). Don't let arc_c get too + * small, because it can cause transactions to be larger than + * arc_c, causing arc_tempreserve_space() to fail. + */ +#ifndef _KERNEL + arc_c_min = arc_c_max / 2; +#endif + #ifdef _KERNEL /* * Allow the tunables to override our calculations if they are |