This change consists of several subchanges that should be separate
subversion commits.
- allow taskqueue threads to be created under kernel process umbrella
taskqueue_start_threads_in_proc() is like taskqueue_start_threads()
but has an additional struct proc parameter that's passed to kthread_add().
- illumos taskq_create_proc can now pass its process parameter to taskqueue
Also, use zfsproc instead of NULL for taskq_create.
Caveat: zfsproc might not be initialized yet, but in that case
it is still NULL, so not worse than before.
- illumos sys/proc.h: kthread id is stored in t_did field, not t_tid
- zfs: enable SPA_PROCESS on the kernel side
The change is a bit hairy as newproc() is implemented privately to spa.c.
I couldn't think of a better way to populate process name than to poke
inside the argument for the process routine.
- illumos thread_create: allow assigning thread to process other than zfsproc
- zfs: expose spa_proc to other users, assign sync and quiesce threads to it