From: Douglas Gilbert <dgilbert@interlog.com>
To: Hannes Reinecke <hare@suse.de>, Mike Christie <michaelc@cs.wisc.edu>
Cc: James Bottomley <jbottomley@parallels.com>,
Christoph Hellwig <hch@infradead.org>,
linux-scsi@vger.kernel.org, Ren Mingxin <renmx@cn.fujitsu.com>,
Joern Engel <joern@logfs.org>,
James Smart <james.smart@emulex.com>
Subject: Re: [PATCH 2/5] scsi: improved eh timeout handler
Date: Thu, 07 Nov 2013 13:33:31 -0500 [thread overview]
Message-ID: <527BDCFB.8080709@interlog.com> (raw)
In-Reply-To: <527B3707.9060202@suse.de>
On 13-11-07 01:45 AM, Hannes Reinecke wrote:
> On 11/06/2013 06:23 PM, Mike Christie wrote:
>> On 11/05/2013 10:48 PM, Hannes Reinecke wrote:
>>> On 11/05/2013 08:19 PM, Mike Christie wrote:
>>>> On 11/04/2013 11:05 PM, Hannes Reinecke wrote:
>>>>> +
>>>>> + scmd->eh_eflags |= SCSI_EH_ABORT_SCHEDULED;
>>>>> + SCSI_LOG_ERROR_RECOVERY(3,
>>>>> + scmd_printk(KERN_INFO, scmd,
>>>>> + "scmd %p abort scheduled\n", scmd));
>>>>> + schedule_delayed_work(&scmd->abort_work, HZ / 100);
>>>>> + return SUCCESS;
>>>>> +}
>>>>
>>>> Do we want to use our own workqueue_struct with WQ_MEM_RECLAIM set?
>>>>
>>> Errm. Yes, why?
>>>
>>> I must admit I'm not _that_ familiar with workqueues ...
>>> Care to explain?
>>>
>>
>> We all share the above workqueue_structs pool of threads, so if we get
>> stuck behind code doing GFP_KERNEL allocs that end up needing to write
>> data to the disk we are now trying to aborts on, then we could get
>> stuck. With WQ_MEM_RECLAIM, we have our own backup thread that gets
>> created at workqueue_struct create time which can get used in cases like
>> that so we can always make forward progress.
>>
> Ah. Right. Yes, that makes sense.
>
> I guess I'll have to redo the patches _yet again_.
I wonder if it might be useful to flag a LU (disk)
with "try really hard to recover me, perhaps at the
expense of other LUs". Seems like a LU containing the
rootfs or swap might qualify for setting such a flag.
And LUs that have this flag cleared could be assumed
to not get wedged in the fashion that Mike pointed out.
Doug Gilbert
next prev parent reply other threads:[~2013-11-07 18:33 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-05 7:05 [PATCHv10 0/5] New EH command timeout handler Hannes Reinecke
2013-11-05 7:05 ` [PATCH 1/5] scsi: Fix erratic device offline during EH Hannes Reinecke
2013-11-05 7:05 ` [PATCH 2/5] scsi: improved eh timeout handler Hannes Reinecke
2013-11-05 19:19 ` Mike Christie
2013-11-06 6:48 ` Hannes Reinecke
2013-11-06 17:23 ` Mike Christie
2013-11-07 6:45 ` Hannes Reinecke
2013-11-07 18:33 ` Douglas Gilbert [this message]
2013-11-08 15:54 ` Hannes Reinecke
2013-11-09 8:35 ` James Bottomley
2013-11-09 15:27 ` Hannes Reinecke
2013-11-06 14:47 ` Christoph Hellwig
2013-11-07 6:42 ` Hannes Reinecke
2013-11-05 7:05 ` [PATCH 3/5] scsi: Unlock accesses to eh_deadline Hannes Reinecke
2013-11-05 7:05 ` [PATCH 4/5] scsi: Set the minimum valid value of 'eh_deadline' as 0 Hannes Reinecke
2013-11-05 7:05 ` [PATCH 5/5] scsi: Update documentation Hannes Reinecke
-- strict thread matches above, loose matches on Subject: below --
2013-11-11 12:44 [PATCHv11 0/5] New EH command timeout handler Hannes Reinecke
2013-11-11 12:44 ` [PATCH 2/5] scsi: improved eh " Hannes Reinecke
2014-02-11 14:01 ` Christoph Hellwig
2014-02-11 14:29 ` Hannes Reinecke
2014-02-12 7:45 ` Christoph Hellwig
2014-02-12 7:49 ` Hannes Reinecke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=527BDCFB.8080709@interlog.com \
--to=dgilbert@interlog.com \
--cc=hare@suse.de \
--cc=hch@infradead.org \
--cc=james.smart@emulex.com \
--cc=jbottomley@parallels.com \
--cc=joern@logfs.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=renmx@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).