[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