[dm-devel] [PATCH 4/7] dm mpath: remove process_queued_ios()
Hannes Reinecke
hare at suse.de
Tue Feb 4 11:31:29 UTC 2014
On 02/04/2014 12:26 PM, Junichi Nomura wrote:
> On 02/04/14 19:54, Hannes Reinecke wrote:
>> We only need to take care to add a small delay when calling
>> __pg_init_all_paths() to move processing off to a workqueue; otherwise
>> pg_init_done() might end up calling scsi_dh_activate() directly, which
>> might use non-atomic memory allocations or issue I/O.
>
> Hi Hannes,
>
> could you tell me how "might end up calling scsi_dh_active()" happens?
>
> queue_delayed_work()
> queue_delayed_work_on()
> __queue_delayed_work()
> if (!delay)
> __queue_work()
> get_work_pool()
> insert_work()
> set_work_pwq()
> get_pwq()
> if (__need_more_worker())
> wake_up_worker()
>
> queue_work() doesn't execute the work itself.
>
> What am I missing?
>
As mentioned, I stumbled across the same issue when developing the
asynchronous SCSI aborts. I'll see to have it recreated with this
patchset.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare at suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
More information about the dm-devel
mailing list