On Sat, Oct 16, 2021 at 08:53:15PM +0200, Fabio M. De Francesco wrote: > On Saturday, October 16, 2021 8:13:43 PM CEST Martin Kaiser wrote: > > At the moment, our command thread can be killed by user space. > > > > [root@host ]# kill `pidof RTW_CMD_THREAD` > > > > The driver will then stop working until the module is unloaded > > and reloaded. > > > > Don't process SIGTERM in the command thread. Other drivers that have a > > command thread don't process SIGTERM either. > > Hi Martin, > > This is _really_ interesting :) > > May be that you have had time to read my last email in reply to a message of > Phillip P. Soon after writing of the arguments in favor of using > wait_for_completion_killable() (in patch 2/3 of the series I sent today), I > read your patch. > > If you are right (and I think you are) I'll have to send a v2 that replaces > the killable wait with an uninterruptible one. > > Unfortunately I have not the needed experience to decide whether or not to > ack your patch, even if I'm strongly tempted to do it. > > Let's wait for more experienced people. > > Thanks, > > Fabio > So I myself am a little confused on this one :-) Based on my understanding, so correct me if I'm wrong, a process (kthread or otherwise) can still be killed if marked TASK_KILLABLE, even if ignoring SIGTERM. Indeed, from a userspace perspective, SIGKILL is unblockable anyway - although of course kernel code can choose how to respond to it. So in other words, the kthread could still be killed while waiting in the wait_for_completion_killable() call, even if we are ignoring SIGTERM. From that perspective I guess, it is therefore not 'incorrect' as such - if indeed we wanted that behaviour. That said, killing it would still cause the behaviour Martin mentions - I guess we don't want it to be either killable or interruptible based on that logic? Regards, Phil