Linux kernel source tree
Go to file
Alexander Duyck 9925aa5542 UPSTREAM: driver core: Probe devices asynchronously instead of the driver
Probe devices asynchronously instead of the driver. This results in us
seeing the same behavior if the device is registered before the driver or
after. This way we can avoid serializing the initialization should the
driver not be loaded until after the devices have already been added.

The motivation behind this is that if we have a set of devices that
take a significant amount of time to load we can greatly reduce the time to
load by processing them in parallel instead of one at a time. In addition,
each device can exist on a different node so placing a single thread on one
CPU to initialize all of the devices for a given driver can result in poor
performance on a system with multiple nodes.

This approach can reduce the time needed to scan SCSI LUNs significantly.
The only way to realize that speedup is by enabling more concurrency which
is what is achieved with this patch.

To achieve this it was necessary to add a new member "async_driver" to the
device_private structure to store the driver pointer while we wait on the
deferred probe call.

Change-Id: I08edadd321d483facd62ed913d17bd79813e66d9
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit ef0ff68351)
2020-03-23 10:28:09 +08:00
arch Revert "ARM: rockchip_defconfig: Enable zram writeback" 2020-03-21 20:49:44 +08:00
block Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
certs rk: revert to v4.4 2019-02-10 00:33:21 +08:00
crypto UPSTREAM: crypto: skcipher - Introduce crypto_sync_skcipher 2020-03-12 10:46:18 -07:00
Documentation UPSTREAM: async: Add cmdline option to specify drivers to be async probed 2020-03-23 10:25:12 +08:00
drivers UPSTREAM: driver core: Probe devices asynchronously instead of the driver 2020-03-23 10:28:09 +08:00
firmware Fix built-in early-load Intel microcode alignment 2020-01-23 08:21:29 +01:00
fs Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
include Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
init Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
ipc This is the 4.19.107 stable release 2020-03-03 07:33:01 +01:00
kernel Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
lib Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
LICENSES
mm Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
net Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
samples FROMGIT: samples/hw_breakpoint: drop use of kallsyms_lookup_name() 2020-03-12 11:18:49 +00:00
scripts Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
security Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
sound Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
tools Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
usr kbuild: clean compressed initramfs image 2019-10-07 18:57:16 +02:00
virt KVM: Check for a bad hva before dropping into the ghc slow path 2020-03-05 16:42:21 +01:00
.checkpatch.conf
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore rk: .gitignore: ignore boot.img/kernel.img/resource.img/zboot.mg 2019-02-15 18:31:05 +08:00
.mailmap rk: revert to v4.4 2019-02-10 00:33:21 +08:00
.scmversion
abi_gki_aarch64_cuttlefish_whitelist ANDROID: ABI/Whitelist: update for Cuttlefish 2020-02-12 11:11:16 +00:00
abi_gki_aarch64_qcom_whitelist ANDROID: Update ABI whitelist for qcom SoCs 2020-03-06 14:50:51 -08:00
abi_gki_aarch64_whitelist ANDROID: abi_gki_aarch64_whitelist: add module_layout and task_struct 2020-03-05 09:07:15 +00:00
abi_gki_aarch64.xml ANDROID: update the ABI xml representation 2020-03-20 11:54:49 -07:00
build.config.aarch64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.allmodconfig ANDROID: Don't base allmodconfig on gki_defconfig 2019-12-05 12:48:26 +00:00
build.config.allmodconfig.aarch64 ANDROID: Add allmodconfig build.configs for x86_64 and aarch64 2019-11-12 20:55:23 +00:00
build.config.allmodconfig.arm ANDROID: Add build.config files for ARM 32-bit 2020-03-16 17:43:55 +00:00
build.config.allmodconfig.x86_64 ANDROID: Add allmodconfig build.configs for x86_64 and aarch64 2019-11-12 20:55:23 +00:00
build.config.arm ANDROID: Add build.config files for ARM 32-bit 2020-03-16 17:43:55 +00:00
build.config.common ANDROID: clang: update to 10.0.4 2020-02-19 19:33:36 +00:00
build.config.cuttlefish.aarch64 ANDROID: cf build: Use merge_configs 2020-02-18 21:19:23 +00:00
build.config.cuttlefish.x86_64 ANDROID: cf build: Use merge_configs 2020-02-18 21:19:23 +00:00
build.config.gki ANDROID: gki: Removed cf modules from gki_defconfig 2020-01-31 16:23:38 -08:00
build.config.gki-debug.aarch64 ANDROID: Add build.config.gki-debug.aarch64 2020-03-16 14:29:13 +00:00
build.config.gki-debug.x86_64 ANDROID: Add build.config.gki-debug.x86_64 2020-03-16 14:29:13 +00:00
build.config.gki.aarch64 ANDROID: Add ABI Whitelist for qcom 2020-02-28 23:45:43 +00:00
build.config.gki.x86_64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
build.config.x86_64 ANDROID: refactor build.config files to remove duplication 2019-10-22 18:27:12 -07:00
COPYING
CREDITS
cuttlefish.fragment ANDROID: Add TPM support and the vTPM proxy to Cuttlefish. 2020-03-13 17:19:53 +00:00
Kbuild rk: revert to v4.4 2019-02-10 00:33:21 +08:00
Kconfig
logo_kernel.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
logo.bmp rk: logo: update logo file 2019-08-29 19:45:37 +08:00
MAINTAINERS This is the 4.19.107 stable release 2020-03-03 07:33:01 +01:00
Makefile Merge remote branch 'android-4.19' of https://android.googlesource.com/kernel/common 2020-03-21 19:46:46 +08:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.