On 08/05/2009 12:34 PM, Erez Zilber wrote:
>> I found it. The problem is that we will send the signal if the xmit
>> thread is running or not. If it is not running the workqueue code will
>> keep getting woken up to handle the signal, but because we have not
>> called queue_work the workqueue code will not let the thread run so we
>> never get to flush the signal until we reconnect and send down a login
>> pdu (the login pdu does a queue_work finally).
>>
>
> When you say "the xmit thread is running", I guess that you mean that
> the xmit thread is busy with IO, right? Note that I said that this
No. workqueue.c:worker_thread() is spinning. It is looping because there
is a signal pending, but the iscsi work code which has the flush_signals
is not getting run because there is no work queued.
So you could add a
if (signal_pending(current))
flush_signals(current)
to worker_thread() "for" loop and I think this will fix the problem.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~----------~----~----~----~------~----~------~--~---