Print this page
4045 zfs write throttle & i/o scheduler performance work
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>

@@ -182,11 +182,11 @@
         .zo_metaslab_gang_bang = 32 << 10
 };
 
 extern uint64_t metaslab_gang_bang;
 extern uint64_t metaslab_df_alloc_threshold;
-extern uint64_t zfs_deadman_synctime;
+extern uint64_t zfs_deadman_synctime_ms;
 
 static ztest_shared_opts_t *ztest_shared_opts;
 static ztest_shared_opts_t ztest_opts;
 
 typedef struct ztest_shared_ds {

@@ -5323,14 +5323,14 @@
         ztest_shared_t *zs = arg;
         spa_t *spa = ztest_spa;
         hrtime_t delta, total = 0;
 
         for (;;) {
-                delta = (zs->zs_thread_stop - zs->zs_thread_start) /
-                    NANOSEC + zfs_deadman_synctime;
+                delta = zs->zs_thread_stop - zs->zs_thread_start +
+                    MSEC2NSEC(zfs_deadman_synctime_ms);
 
-                (void) poll(NULL, 0, (int)(1000 * delta));
+                (void) poll(NULL, 0, (int)NSEC2MSEC(delta));
 
                 /*
                  * If the pool is suspended then fail immediately. Otherwise,
                  * check to see if the pool is making any progress. If
                  * vdev_deadman() discovers that there hasn't been any recent

@@ -5337,16 +5337,16 @@
                  * I/Os then it will end up aborting the tests.
                  */
                 if (spa_suspended(spa)) {
                         fatal(0, "aborting test after %llu seconds because "
                             "pool has transitioned to a suspended state.",
-                            zfs_deadman_synctime);
+                            zfs_deadman_synctime_ms / 1000);
                         return (NULL);
                 }
                 vdev_deadman(spa->spa_root_vdev);
 
-                total += zfs_deadman_synctime;
+                total += zfs_deadman_synctime_ms/1000;
                 (void) printf("ztest has been running for %lld seconds\n",
                     total);
         }
 }
 

@@ -6071,11 +6071,11 @@
         char *fd_data_str = getenv("ZTEST_FD_DATA");
 
         (void) setvbuf(stdout, NULL, _IOLBF, 0);
 
         dprintf_setup(&argc, argv);
-        zfs_deadman_synctime = 300;
+        zfs_deadman_synctime_ms = 300000;
 
         ztest_fd_rand = open("/dev/urandom", O_RDONLY);
         ASSERT3S(ztest_fd_rand, >=, 0);
 
         if (!fd_data_str) {