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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to