[dm-devel] [PATCH 4/7] dm mpath: remove process_queued_ios()

Mike Snitzer snitzer at redhat.com
Mon Feb 10 13:30:47 UTC 2014


On Tue, Feb 04 2014 at  6:31am -0500,
Hannes Reinecke <hare at suse.de> wrote:

> 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.

Just to verify, this seems to be the only outstanding question for this
patchset?

What value are you using for HZ?  If this portion of the change does
turn out to be meaningul: Rather than tieing to HZ should we just use an
explicitly non-zero value for __pg_init_all_paths()'s @min_delay?




More information about the dm-devel mailing list