Lines Matching refs:nmk
1164 struct nm_kctx *nmk; member
1182 struct nm_kctx *nmk = data; in nm_kctx_worker() local
1183 struct nm_kctx_ctx *ctx = &nmk->worker_ctx; in nm_kctx_worker()
1185 if (nmk->affinity >= 0) { in nm_kctx_worker()
1187 sched_bind(curthread, nmk->affinity); in nm_kctx_worker()
1191 while (nmk->run) { in nm_kctx_worker()
1212 nm_os_kctx_worker_setaff(struct nm_kctx *nmk, int affinity) in nm_os_kctx_worker_setaff() argument
1214 nmk->affinity = affinity; in nm_os_kctx_worker_setaff()
1220 struct nm_kctx *nmk = NULL; in nm_os_kctx_create() local
1222 nmk = malloc(sizeof(*nmk), M_DEVBUF, M_NOWAIT | M_ZERO); in nm_os_kctx_create()
1223 if (!nmk) in nm_os_kctx_create()
1226 mtx_init(&nmk->worker_lock, "nm_kthread lock", NULL, MTX_DEF); in nm_os_kctx_create()
1227 nmk->worker_ctx.worker_fn = cfg->worker_fn; in nm_os_kctx_create()
1228 nmk->worker_ctx.worker_private = cfg->worker_private; in nm_os_kctx_create()
1229 nmk->worker_ctx.type = cfg->type; in nm_os_kctx_create()
1230 nmk->affinity = -1; in nm_os_kctx_create()
1233 nmk->attach_user = cfg->attach_user; in nm_os_kctx_create()
1235 return nmk; in nm_os_kctx_create()
1239 nm_os_kctx_worker_start(struct nm_kctx *nmk) in nm_os_kctx_worker_start() argument
1249 if (nmk->worker) in nm_os_kctx_worker_start()
1253 if (nmk->attach_user) { in nm_os_kctx_worker_start()
1254 nmk->worker_ctx.user_td = curthread; in nm_os_kctx_worker_start()
1259 nmk->run = 1; in nm_os_kctx_worker_start()
1261 if((error = kthread_add(nm_kctx_worker, nmk, p, in nm_os_kctx_worker_start()
1262 &nmk->worker, RFNOWAIT /* to be checked */, 0, "nm-kthread-%ld", in nm_os_kctx_worker_start()
1263 nmk->worker_ctx.type))) { in nm_os_kctx_worker_start()
1267 nm_prinf("nm_kthread started td %p", nmk->worker); in nm_os_kctx_worker_start()
1272 nmk->worker = NULL; in nm_os_kctx_worker_start()
1277 nm_os_kctx_worker_stop(struct nm_kctx *nmk) in nm_os_kctx_worker_stop() argument
1279 if (!nmk->worker) in nm_os_kctx_worker_stop()
1283 nmk->run = 0; in nm_os_kctx_worker_stop()
1286 kthread_resume(nmk->worker); in nm_os_kctx_worker_stop()
1288 nmk->worker = NULL; in nm_os_kctx_worker_stop()
1292 nm_os_kctx_destroy(struct nm_kctx *nmk) in nm_os_kctx_destroy() argument
1294 if (!nmk) in nm_os_kctx_destroy()
1297 if (nmk->worker) in nm_os_kctx_destroy()
1298 nm_os_kctx_worker_stop(nmk); in nm_os_kctx_destroy()
1300 free(nmk, M_DEVBUF); in nm_os_kctx_destroy()