zfs: lower priority of zio_write_issue threads by four

The difference of one was insignificant because zio_write_issue threads
ended up on the same run queues as other zio threads.
See sys/priority.h and sys/runq.h for more details.

Add a comment describing FreeBSD priority considerations and restore
the illumos variant of the code for comparison.

Obtained from:	Panzura
MFC after:	2 weeks
Sponsored by:	Panzura
This commit is contained in:
Andriy Gapon 2017-02-21 21:09:21 +00:00
parent a384a37df8
commit 2b1bedaf06

View File

@ -922,9 +922,17 @@ spa_taskqs_init(spa_t *spa, zio_type_t t, zio_taskq_type_t q)
* The write issue taskq can be extremely CPU
* intensive. Run it at slightly lower priority
* than the other taskqs.
* FreeBSD notes:
* - numerically higher priorities are lower priorities;
* - if priorities divided by four (RQ_PPQ) are equal
* then a difference between them is insignificant.
*/
if (t == ZIO_TYPE_WRITE && q == ZIO_TASKQ_ISSUE)
pri++;
#ifdef illumos
pri--;
#else
pri += 4;
#endif
tq = taskq_create_proc(name, value, pri, 50,
INT_MAX, spa->spa_proc, flags);