> -----Original Message----- > From: Johannes Thumshirn [mailto:jthumshirn@xxxxxxx] > Sent: Wednesday, February 15, 2017 12:44 AM > To: Raghava Aditya Renukunta > <RaghavaAditya.Renukunta@xxxxxxxxxxxxx>; jejb@xxxxxxxxxxxxxxxxxx; > martin.petersen@xxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx > Cc: Dave Carroll <david.carroll@xxxxxxxxxxxxx>; Gana Sridaran > <gana.sridaran@xxxxxxxxxxxxx>; Scott Benesh > <scott.benesh@xxxxxxxxxxxxx>; dan.carpenter@xxxxxxxxxx > Subject: Re: [PATCH 10/16] aacraid: Terminate kthread on controller fw > assert > > EXTERNAL EMAIL > > > On 02/14/2017 09:44 PM, Raghava Aditya Renukunta wrote: > > When the command thread performs a periodic time sync and the > firmware is > > going through an assert during that time, the command thread waits for > the > > response that would never arrive. The SCSI Mid layer's error handler would > > eventually reset the controller, but the eh_handler just issues a > > "thread stop" to the command thread which is stuck on a semaphore and > the > > eh_thread would in turn goes to sleep waiting for the command_thread to > > respond to the stop which never happens. > > > > Fixed by allowing SIGTERM for the command thread, and during the > eh_reset > > call, sends termination signal to the command thread. As a follow-up, the > > eh_reset handler would take care of the controller reset. > > > > Signed-off-by: Raghava Aditya Renukunta > <RaghavaAditya.Renukunta@xxxxxxxxxxxxx> > > Reviewed-by: David Carroll <David.Carroll@xxxxxxxxxxxxx> > > --- > > This look a bit scary. Can't the kthread be converted to a workqueue so > we could call cancel_work_sync()? Could you please elaborate on the reasons why this fix is scary? I understand that killing a thread is not standard (for any reason), and if there are other nuanced issues I would like to understand them. Thank you, Raghava Aditya > > -- > Johannes Thumshirn Storage > jthumshirn@xxxxxxx +49 911 74053 689 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: Felix Imendörffer, Jane Smithard, Graham Norton > HRB 21284 (AG Nürnberg) > Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850