android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Bart Van Assche be4d2b4562 loop: Select I/O scheduler 'none' from inside add_disk()
commit 2112f5c1330a671fa852051d85cb9eadc05d7eb7 upstream.

We noticed that the user interface of Android devices becomes very slow
under memory pressure. This is because Android uses the zram driver on top
of the loop driver for swapping, because under memory pressure the swap
code alternates reads and writes quickly, because mq-deadline is the
default scheduler for loop devices and because mq-deadline delays writes by
five seconds for such a workload with default settings. Fix this by making
the kernel select I/O scheduler 'none' from inside add_disk() for loop
devices. This default can be overridden at any time from user space,
e.g. via a udev rule. This approach has an advantage compared to changing
the I/O scheduler from userspace from 'mq-deadline' into 'none', namely
that synchronize_rcu() does not get called.

This patch changes the default I/O scheduler for loop devices from
'mq-deadline' into 'none'.

Additionally, this patch reduces the Android boot time on my test setup
with 0.5 seconds compared to configuring the loop I/O scheduler from user
space.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Ming Lei <ming.lei@redhat.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Martijn Coenen <maco@android.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20210805174200.3250718-3-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-11 11:53:54 +02:00
..
accessibility
acpi ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily 2023-08-11 11:53:53 +02:00
amba
android binder: fix UAF caused by faulty buffer cleanup 2023-06-05 08:17:33 +02:00
ata ata: pata_ns87415: mark ns87560_tf_read static 2023-08-11 11:53:49 +02:00
atm treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
auxdisplay
base x86/speculation: Add Gather Data Sampling mitigation 2023-08-08 19:56:35 +02:00
bcma
block loop: Select I/O scheduler 'none' from inside add_disk() 2023-08-11 11:53:54 +02:00
bluetooth Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work" 2023-05-17 11:35:45 +02:00
bus bus: imx-weim: fix branch condition evaluates to a garbage value 2023-04-05 11:16:42 +02:00
cdrom
char tpm_tis: Explicitly check for error code 2023-08-11 11:53:52 +02:00
clk clk: keystone: sci-clk: check return value of kasprintf() 2023-07-27 08:37:15 +02:00
clocksource clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe 2023-07-27 08:37:05 +02:00
connector
counter counter: 104-quad-8: Fix race condition between FLAG and CNTR reads 2023-05-17 11:35:31 +02:00
cpufreq cpufreq: intel_pstate: Drop ACPI _PSS states table patching 2023-08-11 11:53:53 +02:00
cpuidle
crypto crypto: marvell/cesa - Fix type mismatch warning 2023-07-27 08:37:18 +02:00
dax
dca
devfreq
dio
dma dmaengine: pl330: rename _start to prevent build error 2023-06-09 10:28:52 +02:00
dma-buf
edac EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-17 11:35:35 +02:00
eisa
extcon extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-27 08:37:20 +02:00
firewire treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
firmware firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool() 2023-07-27 08:37:37 +02:00
fpga fpga: bridge: fix kernel-doc parameter description 2023-05-17 11:35:46 +02:00
fsi
gnss
gpio gpio: tps68470: Make tps68470_gpio_output() always set the initial value 2023-08-11 11:53:44 +02:00
gpu drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb() 2023-08-11 11:53:49 +02:00
greybus
hid HID: wacom: Use ktime_t rather than int when dealing with timestamps 2023-07-27 08:37:03 +02:00
hsi
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:18:36 +02:00
hwmon hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled 2023-08-11 11:53:52 +02:00
hwspinlock
hwtracing coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet() 2023-05-30 12:44:10 +01:00
i2c i2c: xiic: Don't try to handle more interrupt events after error 2023-07-27 08:37:24 +02:00
i3c
ide treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
idle
iio meson saradc: fix clock divider mask length 2023-07-27 08:37:38 +02:00
infiniband RDMA/mlx4: Make check for invalid flags stricter 2023-08-11 11:53:48 +02:00
input Input: adxl34x - do not hardcode interrupt trigger type 2023-07-27 08:37:13 +02:00
interconnect interconnect: fix mem leak when freeing nodes 2023-03-22 13:28:08 +01:00
iommu iommu/amd: Don't block updates to GATag if guest mode is on 2023-06-09 10:28:52 +02:00
ipack
irqchip irq-bcm6345-l1: Do not assume a fixed block to cpu mapping 2023-08-11 11:53:52 +02:00
isdn
leds leds: TI_LMU_COMMON: select REGMAP instead of depending on it 2023-05-17 11:35:53 +02:00
lightnvm
macintosh macintosh: via-pmu-led: requires ATA to be set 2023-05-17 11:35:50 +02:00
mailbox mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 2023-07-27 08:37:23 +02:00
mcb mcb-pci: Reallocate memory region to avoid memory overlapping 2023-05-30 12:44:04 +01:00
md dm cache policy smq: ensure IO doesn't prevent cleaner policy progress 2023-08-11 11:53:53 +02:00
media media: usb: siano: Fix warning due to null work_func_t function pointer 2023-07-27 08:37:20 +02:00
memory memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:37:14 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-27 08:37:10 +02:00
message scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition 2023-05-30 12:44:03 +01:00
mfd mfd: stmpe: Only disable the regulators if they are enabled 2023-07-27 08:37:22 +02:00
misc misc: pci_endpoint_test: Re-init completion for every test 2023-07-27 08:37:37 +02:00
mmc mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used. 2023-07-27 08:37:25 +02:00
mtd mtd: rawnand: meson: fix unaligned DMA buffers handling 2023-07-27 08:37:34 +02:00
mux
net virtio-net: fix race between set queues and probe 2023-08-11 11:53:52 +02:00
nfc nfcsim.c: Fix error checking for debugfs_create_dir 2023-06-28 10:18:41 +02:00
ntb NTB: ntb_tool: Add check for devm_kcalloc 2023-07-27 08:37:32 +02:00
nubus
nvdimm
nvme nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage" 2023-05-17 11:35:43 +02:00
nvmem
of of: Fix modalias string generation 2023-05-17 11:35:47 +02:00
opp
oprofile
parisc
parport
pci PCI/ASPM: Avoid link retraining race 2023-08-11 11:53:45 +02:00
pcmcia
perf
phy phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe() 2023-08-11 11:53:47 +02:00
pinctrl pinctrl: amd: Use amd_pinconf_set() for all config options 2023-07-27 08:37:43 +02:00
platform platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 2023-08-11 11:53:48 +02:00
pnp
power power: supply: Fix logic checking if system is running from battery 2023-06-21 15:44:09 +02:00
powercap powercap: RAPL: Fix CONFIG_IOSF_MBI dependency 2023-07-27 08:37:06 +02:00
pps
ps3
ptp ptp_qoriq: fix memory leak in probe() 2023-04-05 11:16:43 +02:00
pwm pwm: meson: fix handling of period/duty if greater than UINT_MAX 2023-08-11 11:53:46 +02:00
rapidio
ras
regulator regulator: core: Streamline debugfs operations 2023-07-27 08:37:07 +02:00
remoteproc remoteproc: st: Call of_node_put() on iteration error 2023-05-17 11:36:01 +02:00
reset
rpmsg
rtc rtc: st-lpc: Release some resources in st_rtc_probe() in case of error 2023-07-27 08:37:22 +02:00
s390 s390/dasd: fix hanging device after quiesce/resume 2023-08-11 11:53:53 +02:00
sbus
scsi scsi: qla2xxx: Array index may go out of bound 2023-08-11 11:53:46 +02:00
sfi
sh
siox
slimbus
soc soc/fsl/qe: fix usb.c build errors 2023-07-27 08:37:14 +02:00
soundwire
spi spi: bcm63xx: fix max prepend length 2023-07-27 08:37:43 +02:00
spmi spmi: Add a check for remove callback when removing a SPMI driver 2023-05-17 11:35:49 +02:00
ssb treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
staging staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext() 2023-08-11 11:53:52 +02:00
target scsi: target: iscsi: Prevent login threads from racing between each other 2023-06-28 10:18:40 +02:00
tc
tee
thermal thermal: intel: BXT_PMIC: select REGMAP instead of depending on it 2023-03-11 16:44:13 +01:00
thunderbolt thunderbolt: Use const qualifier for ring_interrupt_index 2023-04-05 11:16:39 +02:00
tty serial: sifive: Fix sifive_serial_console_setup() section 2023-08-11 11:53:50 +02:00
uio
usb Revert "usb: xhci: tegra: Fix error check" 2023-08-11 11:53:51 +02:00
vfio
vhost treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
video fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe 2023-07-27 08:37:44 +02:00
virt
virtio treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
visorbus
vlynq
vme
w1 w1: fix loop in w1_fini() 2023-07-27 08:37:19 +02:00
watchdog watchdog: menz069_wdt: fix watchdog initialisation 2023-06-09 10:28:55 +02:00
xen xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() 2023-05-30 12:44:10 +01:00
zorro
Kconfig
Makefile