summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-10-14 10:28:29 +0000
committermav <mav@FreeBSD.org>2015-10-14 10:28:29 +0000
commit89a4cb886e13bdfef3d3ee5f241359e0f534bbc9 (patch)
treebe05306858bfe7c40e6f23381741c20d6deb748d
parent176234430e93ca5a44579b9c7234e756f07ee271 (diff)
downloadFreeBSD-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.c10
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
OpenPOWER on IntegriCloud