From 4220ebcf71d5ee5bb1ee203a79f23c0019ad5173 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 3 Jun 2014 21:06:03 +0000 Subject: [PATCH] Replace gethrtime() with cpu_ticks(), as source of random for the taskqueue selection. gethrtime() in our port updated with HZ rate, so unusable for this specific purpose, completely draining benefit of multiple taskqueues. MFC after: 2 weeks --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c index c753511479d3..48133f61ea9a 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c @@ -953,7 +953,7 @@ spa_taskq_dispatch_ent(spa_t *spa, zio_type_t t, zio_taskq_type_t q, if (tqs->stqs_count == 1) { tq = tqs->stqs_taskq[0]; } else { - tq = tqs->stqs_taskq[gethrtime() % tqs->stqs_count]; + tq = tqs->stqs_taskq[cpu_ticks() % tqs->stqs_count]; } taskq_dispatch_ent(tq, func, arg, flags, ent);