michael.christie@xxxxxxxxxx writes: > On 5/29/23 2:35 PM, Mike Christie wrote: >>> Hmm... If we you CLONE_THREAD the exiting vhost_worker() will auto-reap itself, >> Oh wait, are you saying that when we get auto-reaped then we would do the last >> fput and call the file_operations->release function right? We actually set >> task_struct->files = NULL for the vhost_task task_struct, so I think we call >> release a little sooner than you think. >> >> vhost_task_create() sets kernel_clone_args->no_files, so the vhost_task task_struc >> that gets created works like kthreads where it doesn't do a CLONE_FILES and it >> doesn't do a dup_fd. >> >> So when we do de_thread() -> zap_other_threads(), that will kill all the threads >> in the group right? So when they exit, it will call our release function since >> we don't have refcount on ourself. >> > > Just to make sure I'm on the same page now. > > In the past thread when were discussing the patch below and you guys were saying > that it doesn't really ignore SIGKILL because we will hit the > SIGNAL_GROUP_EXIT/group_exec_task checks and the parent is going to exit, it was > on purpose. > > Instead of a signal to tell me when do exit, I was using the parent exiting and doing > the last fput on the vhost device's file which calls our release function. That then > allowed the vhost code to use the vhost_task to handle the outstanding IOs and then > do vhost_task_should_stop to tell the vhost_task to exit when the oustanding IO > had completed. > > On the vhost side of things it's really nice, because all the shutdown paths work > the same and we don't need rcu/locking in the main IO path to handle the vhost_task > exiting while we are using it. The code below does nothing for exec. You really need to call get_signal to handle SIGSTOP/freeze/process exit. A variant on my coredump proposal looks like it can handle exec as well. It isn't pretty but it looks good enough for right now. If you could test the patch I posted up thread I think that is something imperfect that is good enough for now. Eric _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization