Author: delphij
Date: Tue Jan 20 20:08:50 2015
New Revision: 277426
URL: https://svnweb.freebsd.org/changeset/base/277426

Log:
  5408 managing ZFS cache devices requires lots of RAM
  Reviewed by: Christopher Siden <christopher.si...@delphix.com>
  Reviewed by: George Wilson <george.wil...@delphix.com>
  Reviewed by: Matthew Ahrens <mahr...@delphix.com>
  Reviewed by: Don Brady <dev.fs....@gmail.com>
  Reviewed by: Josef 'Jeff' Sipek <josef.si...@nexenta.com>
  Approved by: Garrett D'Amore <garr...@damore.org>
  Author: Chris Williamson <chris.william...@delphix.com>
  
  illumos/illumos-gate@89c86e32293a30cdd7af530c38b2073fee01411c

Modified:
  vendor/illumos/dist/cmd/ztest/ztest.c

Changes in other areas also in this revision:
Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/arc.h

Modified: vendor/illumos/dist/cmd/ztest/ztest.c
==============================================================================
--- vendor/illumos/dist/cmd/ztest/ztest.c       Tue Jan 20 20:04:51 2015        
(r277425)
+++ vendor/illumos/dist/cmd/ztest/ztest.c       Tue Jan 20 20:08:50 2015        
(r277426)
@@ -3905,7 +3905,7 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *z
                 * assign an arcbuf to a dbuf.
                 */
                for (j = 0; j < s; j++) {
-                       if (i != 5) {
+                       if (i != 5 || chunksize < (SPA_MINBLOCKSIZE * 2)) {
                                bigbuf_arcbufs[j] =
                                    dmu_request_arcbuf(bonus_db, chunksize);
                        } else {
@@ -3929,7 +3929,8 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *z
                        umem_free(packbuf, packsize);
                        umem_free(bigbuf, bigsize);
                        for (j = 0; j < s; j++) {
-                               if (i != 5) {
+                               if (i != 5 ||
+                                   chunksize < (SPA_MINBLOCKSIZE * 2)) {
                                        dmu_return_arcbuf(bigbuf_arcbufs[j]);
                                } else {
                                        dmu_return_arcbuf(
@@ -3973,7 +3974,7 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *z
                }
                for (off = bigoff, j = 0; j < s; j++, off += chunksize) {
                        dmu_buf_t *dbt;
-                       if (i != 5) {
+                       if (i != 5 || chunksize < (SPA_MINBLOCKSIZE * 2)) {
                                bcopy((caddr_t)bigbuf + (off - bigoff),
                                    bigbuf_arcbufs[j]->b_data, chunksize);
                        } else {
@@ -3990,7 +3991,7 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *z
                                VERIFY(dmu_buf_hold(os, bigobj, off,
                                    FTAG, &dbt, DMU_READ_NO_PREFETCH) == 0);
                        }
-                       if (i != 5) {
+                       if (i != 5 || chunksize < (SPA_MINBLOCKSIZE * 2)) {
                                dmu_assign_arcbuf(bonus_db, off,
                                    bigbuf_arcbufs[j], tx);
                        } else {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to