On 6/3/2014 4:06 PM, Alexander Motin wrote: > Author: mav > Date: Tue Jun 3 21:06:03 2014 > New Revision: 267029 > URL: http://svnweb.freebsd.org/changeset/base/267029 > > Log: > 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 > > Modified: > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c > > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c > ============================================================================== > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jun 3 > 21:02:19 2014 (r267028) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Tue Jun 3 > 21:06:03 2014 (r267029) > @@ -953,7 +953,7 @@ spa_taskq_dispatch_ent(spa_t *spa, zio_t > 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); >
FYI r267038. -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature