From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
To: linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org
Cc: len.brown@intel.com, bvanassche@acm.org,
linux-pm@vger.kernel.org, alexander.h.duyck@linux.intel.com,
rafael@kernel.org, jiangshanlai@gmail.com,
linux-nvdimm@lists.01.org, pavel@ucw.cz, zwisler@kernel.org,
tj@kernel.org, akpm@linux-foundation.org
Subject: [driver-core PATCH v5 0/9] Add NUMA aware async_schedule calls
Date: Mon, 05 Nov 2018 13:11:39 -0800 [thread overview]
Message-ID: <154145223352.29224.8912797012647157172.stgit@ahduyck-desk1.jf.intel.com> (raw)
This patch set provides functionality that will help to improve the
locality of the async_schedule calls used to provide deferred
initialization.
This patch set originally started out with me focused on just the one call
to async_schedule_domain in the nvdimm tree that was being used to
defer the device_add call however after doing some digging I realized the
scope of this was much broader than I had originally planned. As such I
went through and reworked the underlying infrastructure down to replacing
the queue_work call itself with a function of my own and opted to try and
provide a NUMA aware solution that would work for a broader audience.
RFC->v1:
Dropped nvdimm patch to submit later.
It relies on code in libnvdimm development tree.
Simplified queue_work_near to just convert node into a CPU.
Split up drivers core and PM core patches.
v1->v2:
Renamed queue_work_near to queue_work_node
Added WARN_ON_ONCE if we use queue_work_node with per-cpu workqueue
v2->v3:
Added Acked-by for queue_work_node patch
Continued rename from _near to _node to be consistent with queue_work_node
Renamed async_schedule_near_domain to async_schedule_node_domain
Renamed async_schedule_near to async_schedule_node
Added kerneldoc for new async_schedule_XXX functions
Updated patch description for patch 4 to include data on potential gains
v3->v4
Added patch to consolidate use of need_parent_lock
Make asynchronous driver probing explicit about use of drvdata
v4->v5
Added patch to move async_synchronize_full to address deadlock
Added bit async_probe to act as mutex for probe/remove calls
Added back nvdimm patch as code it relies on is now in Linus's tree
Incorporated review comments on parent & device locking consolidation
Rebased on latest linux-next
---
Alexander Duyck (9):
workqueue: Provide queue_work_node to queue work near a given NUMA node
async: Add support for queueing on specific NUMA node
device core: Consolidate locking and unlocking of parent and device
driver core: Move async_synchronize_full call
driver core: Establish clear order of operations for deferred probe and remove
driver core: Probe devices asynchronously instead of the driver
driver core: Attach devices on CPU local to device node
PM core: Use new async_schedule_dev command
libnvdimm: Schedule device registration on node local to the device
drivers/base/base.h | 2
drivers/base/bus.c | 46 +-------
drivers/base/dd.c | 249 +++++++++++++++++++++++++++++++++------------
drivers/base/power/main.c | 12 +-
drivers/nvdimm/bus.c | 11 +-
include/linux/async.h | 84 +++++++++++++++
include/linux/device.h | 35 +++++-
include/linux/workqueue.h | 2
kernel/async.c | 53 +++++-----
kernel/workqueue.c | 84 +++++++++++++++
10 files changed, 432 insertions(+), 146 deletions(-)
--
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
next reply other threads:[~2018-11-05 21:11 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-05 21:11 Alexander Duyck [this message]
2018-11-05 21:11 ` [driver-core PATCH v5 1/9] workqueue: Provide queue_work_node to queue work near a given NUMA node Alexander Duyck
2018-11-06 0:42 ` Bart Van Assche
2018-11-06 16:27 ` Alexander Duyck
2018-11-05 21:11 ` [driver-core PATCH v5 2/9] async: Add support for queueing on specific " Alexander Duyck
2018-11-07 0:50 ` Bart Van Assche
2018-11-05 21:11 ` [driver-core PATCH v5 3/9] device core: Consolidate locking and unlocking of parent and device Alexander Duyck
2018-11-05 21:11 ` [driver-core PATCH v5 4/9] driver core: Move async_synchronize_full call Alexander Duyck
2018-11-06 1:04 ` Bart Van Assche
2018-11-06 16:18 ` Alexander Duyck
2018-11-06 17:22 ` Bart Van Assche
2018-11-05 21:12 ` [driver-core PATCH v5 5/9] driver core: Establish clear order of operations for deferred probe and remove Alexander Duyck
2018-11-06 4:10 ` kbuild test robot
2018-11-06 23:51 ` Bart Van Assche
2018-11-07 0:52 ` Alexander Duyck
2018-11-23 1:23 ` Rong Chen
2018-11-23 14:19 ` Bart Van Assche
2018-11-06 23:48 ` Bart Van Assche
2018-11-07 1:34 ` Joe Perches
2018-11-08 23:42 ` Bart Van Assche
2018-11-11 14:31 ` Pavel Machek
2018-11-27 2:35 ` Dan Williams
2018-11-27 16:49 ` Alexander Duyck
2018-11-05 21:12 ` [driver-core PATCH v5 6/9] driver core: Probe devices asynchronously instead of the driver Alexander Duyck
2018-11-07 0:22 ` Bart Van Assche
2018-11-05 21:12 ` [driver-core PATCH v5 7/9] driver core: Attach devices on CPU local to device node Alexander Duyck
2018-11-07 0:24 ` Bart Van Assche
2018-11-05 21:12 ` [driver-core PATCH v5 8/9] PM core: Use new async_schedule_dev command Alexander Duyck
2018-11-07 0:24 ` Bart Van Assche
2018-11-05 21:12 ` [driver-core PATCH v5 9/9] libnvdimm: Schedule device registration on node local to the device Alexander Duyck
2018-11-07 0:26 ` Bart Van Assche
2018-11-06 0:50 ` [driver-core PATCH v5 0/9] Add NUMA aware async_schedule calls Bart Van Assche
2018-11-06 16:25 ` Alexander Duyck
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=154145223352.29224.8912797012647157172.stgit@ahduyck-desk1.jf.intel.com \
--to=alexander.h.duyck@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=bvanassche@acm.org \
--cc=gregkh@linuxfoundation.org \
--cc=jiangshanlai@gmail.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvdimm@lists.01.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rafael@kernel.org \
--cc=tj@kernel.org \
--cc=zwisler@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).