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
This commit is contained in:
Alexander Motin 2014-06-03 21:06:03 +00:00
parent bc31c88265
commit 4220ebcf71

View File

@ -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);