On 07/01, Tejun Heo wrote: > > All that's necessary is shortcutting indirection through kthreadd. > ie. An exported function which looks like the following, > > struct kthread_clone_or_whatever(int (*threadfn).....) > { > struct kthread_create_info create; > int pid; > > INIT create; > > pid = kernel_thread(kthread, &create, CLONE_FS...); > if (pid < 0) > return ERROR; > wait_for_completion(&create.done); > > if (!IS_ERR(create.result)) > SET NAME; > return create.result; > } > > It might be a good idea to make the function take extra clone flags > but anyways once created cloned task can be treated the same way as > other kthreads, so nothing else needs to be changed. This makes kthread_stop() work. Otherwise the new thread is just the CLONE_VM child of the caller, and the caller is the user-mode task doing ioctl() ? Oleg. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html