All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Cc: mroos@linux.ee, JBottomley@parallels.com
Subject: [PATCH v2 0/4] fix / cleanup async scsi scanning
Date: Wed, 30 May 2012 11:21:25 -0700	[thread overview]
Message-ID: <20120530182016.23574.11056.stgit@dwillia2-linux.jf.intel.com> (raw)

Commit a7a20d10 "[SCSI] sd: limit the scope of the async probe domain"
introduces a boot regression by moving sd probe work off of the global
async queue.  Using a local async domain hides the probe work from being
synchronized by wait_for_device_probe()->async_synchronize_full().

Fix this by teaching async_synchronize_full() to flush all async work
regardless of domain, and take the opportunity to convert scsi scanning
to async_schedule().  This enables wait_for_device_probe() to flush scsi
scanning work.

Changes since v1: http://marc.info/?l=linux-scsi&m=133793153025832&w=2

1/ Tested to fix the boot hang that Meelis reported with v1.  Reworked
   async_synchronize_full() to walk through all the active domains,
   otherwise we spin on !list_empty(async_domains) and prevent the async
   context from running.

2/ Added the ability for domains to opt-out of global syncing as
   requested by Arjan, but also needed for domains that don't want to worry
   about list corruption when the domain goes out of scope (stack-allocated
   domains).

---

Dan Williams (4):
      async: introduce 'async_domain' type
      async: make async_synchronize_full() flush all work regardless of domain
      scsi: queue async scan work to an async_schedule domain
      scsi: cleanup usages of scsi_complete_async_scans


 drivers/regulator/core.c      |    2 +
 drivers/scsi/libsas/sas_ata.c |    2 +
 drivers/scsi/scsi.c           |    4 ++
 drivers/scsi/scsi_priv.h      |    3 +-
 drivers/scsi/scsi_scan.c      |   24 +++----------
 drivers/scsi/scsi_wait_scan.c |   15 +++-----
 include/linux/async.h         |   36 +++++++++++++++++--
 include/scsi/scsi_scan.h      |   11 ------
 kernel/async.c                |   76 +++++++++++++++++++++++++++++++----------
 kernel/power/hibernate.c      |    8 ----
 kernel/power/user.c           |    2 -
 11 files changed, 107 insertions(+), 76 deletions(-)
 delete mode 100644 include/scsi/scsi_scan.h

             reply	other threads:[~2012-05-30 18:05 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-30 18:21 Dan Williams [this message]
2012-05-30 18:21 ` [PATCH v2 1/4] async: introduce 'async_domain' type Dan Williams
2012-05-30 18:21 ` [PATCH v2 2/4] async: make async_synchronize_full() flush all work regardless of domain Dan Williams
2012-05-30 18:21 ` [PATCH v2 3/4] scsi: queue async scan work to an async_schedule domain Dan Williams
2012-05-30 18:21 ` [PATCH v2 4/4] scsi: cleanup usages of scsi_complete_async_scans Dan Williams
2012-05-30 21:34   ` Rafael J. Wysocki
2012-05-30 21:37     ` Rafael J. Wysocki
2012-05-30 21:41     ` Rafael J. Wysocki
2012-05-30 21:49       ` Dan Williams
2012-05-30 21:49         ` Dan Williams
2012-05-30 18:22 ` [PATCH v2 0/4] fix / cleanup async scsi scanning Borislav Petkov
2012-05-30 18:29   ` Dan Williams
2012-05-30 22:33     ` walt
2012-05-31 13:37     ` Borislav Petkov
2012-05-31  9:05 ` mroos

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=20120530182016.23574.11056.stgit@dwillia2-linux.jf.intel.com \
    --to=dan.j.williams@intel.com \
    --cc=JBottomley@parallels.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mroos@linux.ee \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.