Angelo G. Del Regno
24b59982a7
treewide: Backport new vmalloc for large performance benefits
...
This is a backport from Linux 5.2-rc1 of a patch series to greatly enhance vmalloc's performance
especially on embedded systems, plus all of its dependencies that were missing in kernel 4.9.
For all the informations, refer to LKML: https://lkml.org/lkml/2018/10/19/786
Brief informations:
Currently an allocation of the new VA area is done over busy list iteration until a suitable hole
is found between two busy areas. Therefore each new allocation causes the list being grown.
Due to long list and different permissive parameters an allocation can take a long time on
embedded devices(milliseconds).
This patch organizes the vmalloc memory layout into free areas of the VMALLOC_START-VMALLOC_END range.
It uses a red-black tree that keeps blocks sorted by their offsets in pair with linked list
keeping the free space in order of increasing addresses.
Quote Phoronix:
With this patch from Uladzislau Rezki, calling vmalloc() can take up to 67% less time compared
to the behavior on Linux 5.1 and prior, at least with tests done by the developer under QEMU.
Personal tests are showing that the device is more responsive when memory pressure is
high and when huge allocations are to be done, it's also noticeably faster in this case, like
when starting Chrome with more than 100 opened tabs after a system reboot (so, an
uncached complete load of it).
Shameless kanged from:
https://github.com/sonyxperiadev/kernel / Pull Request 2016
Signed-off-by: sweetyicecare <gabrielseedev@outlook.com>
Signed-off-by: Aoihara <veronicadisa6@gmail.com>
Signed-off-by: KangMamles <imzea69@gmail.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:48:25 +07:00
..
tests
btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
2022-11-25 17:35:37 +01:00
acl.c
async-thread.c
btrfs: fix memory ordering between normal and ordered work functions
2021-11-26 11:48:42 +01:00
async-thread.h
Btrfs: fix crash during unmount due to race with delayed inode workers
2020-04-24 07:59:00 +02:00
backref.c
btrfs: remove BUG_ON(!eie) in find_parent_nodes
2022-01-27 08:47:38 +01:00
backref.h
btrfs_inode.h
check-integrity.c
check-integrity.h
compression.c
btrfs: mark compressed range uptodate only if all bio succeed
2021-08-08 08:38:53 +02:00
compression.h
ctree.c
btrfs: fix race when cloning extent buffer during rewind of an old root
2021-03-24 10:59:22 +01:00
ctree.h
btrfs: export helpers for subvolume name/id resolution
2020-08-26 10:29:03 +02:00
dedupe.h
delayed-inode.c
btrfs: abort transaction if we fail to update the delayed inode
2021-07-20 16:20:59 +02:00
delayed-inode.h
delayed-ref.c
Btrfs: fix race between adding and putting tree mod seq elements and nodes
2020-02-14 16:31:07 -05:00
delayed-ref.h
dev-replace.c
btrfs: Ensure replaced device doesn't have pending chunk allocation
2019-07-10 09:55:46 +02:00
dev-replace.h
dir-item.c
disk-io.c
Merge remote-tracking branch 'common/android-4.9-q' into android12-4.9-sdm845
2022-09-06 06:20:26 +03:00
disk-io.h
export.c
btrfs: fix type of parameter generation in btrfs_get_dentry
2022-11-10 15:46:07 +01:00
export.h
btrfs: fix type of parameter generation in btrfs_get_dentry
2022-11-10 15:46:07 +01:00
extent-tree.c
btrfs: unlock newly allocated extent buffer after error
2022-03-16 12:49:01 +01:00
extent_io.c
This is the 4.9.245 stable release
2020-11-22 10:31:19 +01:00
extent_io.h
btrfs: fix potential deadlock in the search ioctl
2020-09-12 11:47:35 +02:00
extent_map.c
Btrfs: fix race between using extent maps and merging them
2020-02-28 15:42:12 +01:00
extent_map.h
file-item.c
btrfs: fix error handling in btrfs_del_csums
2021-06-10 12:42:36 +02:00
file.c
btrfs: return value from btrfs_mark_extent_written() in case of error
2021-06-16 11:36:34 +02:00
free-space-cache.c
btrfs: clarify error returns values in __load_free_space_cache
2021-03-03 17:44:36 +01:00
free-space-cache.h
free-space-tree.c
treewide: Backport new vmalloc for large performance benefits
2026-05-15 17:48:25 +07:00
free-space-tree.h
hash.c
hash.h
inode-item.c
inode-map.c
Btrfs: fix hang when loading existing inode cache off disk
2020-01-29 10:24:31 +01:00
inode-map.h
inode.c
statx: Add a system call to make enhanced file info available
2025-07-10 14:15:39 -04:00
ioctl.c
btrfs: fix metadata extent leak after failure to create subvolume
2021-05-22 10:40:16 +02:00
Kconfig
btrfs: disable build on platforms having page size 256K
2021-07-20 16:20:59 +02:00
locking.c
locking.h
lzo.c
Makefile
btrfs: Move leaf and node validation checker to tree-checker.c
2018-12-08 13:05:11 +01:00
math.h
ordered-data.c
Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents
2020-02-28 15:42:53 +01:00
ordered-data.h
orphan.c
print-tree.c
print-tree.h
props.c
props.h
qgroup.c
btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
2022-12-08 11:15:41 +01:00
qgroup.h
raid56.c
btrfs: fix raid6 qstripe kmap
2021-03-11 13:48:03 +01:00
raid56.h
rcu-string.h
reada.c
btrfs: fix use-after-free on readahead extent after failure to create it
2020-11-10 10:23:57 +01:00
relocation.c
btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
2021-05-22 10:40:17 +02:00
root-tree.c
Btrfs: do not abort transaction at btrfs_update_root() after failure to COW path
2019-05-31 06:48:12 -07:00
scrub.c
btrfs: scrub: Don't use inode page cache in scrub_handle_errored_block()
2020-12-29 13:45:05 +01:00
send.c
btrfs: send: in case of IO error log it
2022-02-23 11:56:39 +01:00
send.h
struct-funcs.c
btrfs: struct-funcs, constify readers
2018-12-08 13:05:12 +01:00
super.c
btrfs: don't show full path of bind mounts in subvol=
2020-08-26 10:29:03 +02:00
sysfs.c
btrfs: sysfs: don't leak memory when failing add fsid
2019-05-31 06:48:12 -07:00
sysfs.h
transaction.c
btrfs: clear defrag status of a root if starting transaction fails
2021-07-20 16:20:56 +02:00
transaction.h
tree-checker.c
btrfs: tree-checker: Fix misleading group system information
2018-12-08 13:05:13 +01:00
tree-checker.h
btrfs: tree-checker: Fix false panic for sanity test
2018-12-08 13:05:12 +01:00
tree-defrag.c
tree-log.c
btrfs: fix lost error handling when looking up extended ref on log replay
2022-08-25 11:09:28 +02:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c
btrfs: handle ENOENT in btrfs_uuid_tree_iterate
2020-01-04 13:38:57 +01:00
volumes.c
Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-17.1-caf-sdm845
2021-01-17 05:04:08 +02:00
volumes.h
btrfs: Remove btrfs_bio::flags member
2019-12-21 10:41:57 +01:00
xattr.c
btrfs: check if root is readonly while setting security xattr
2022-09-05 10:23:56 +02:00
xattr.h
zlib.c