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

Junichi Nomura j-nomura at ce.jp.nec.com
Tue Feb 4 11:26:20 UTC 2014


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?

-- 
Jun'ichi Nomura, NEC Corporation




More information about the dm-devel mailing list