android_kernel_sony_sdm845/fs/nfs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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
..
blocklayout pnfs/blocklayout: off by one in bl_map_stripe() 2018-09-09 20:01:23 +02:00
filelayout NFS: fix an incorrect limit in filelayout_decode_layout() 2021-06-03 08:23:30 +02:00
flexfilelayout pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds 2021-11-26 11:48:37 +01:00
objlayout
cache_lib.c
cache_lib.h
callback.c
callback.h
callback_proc.c NFS: Fix bool initialization/comparison 2020-02-14 16:31:07 -05:00
callback_xdr.c NFS: remove unneeded check in decode_devicenotify_args() 2022-04-20 09:06:37 +02:00
client.c NFS: Fix initialisation of nfs_client cl_flags field 2022-02-16 12:43:52 +01:00
delegation.c NFS: Fix a soft lockup in the delegation recovery code 2020-01-29 10:24:17 +01:00
delegation.h NFS: Fix a soft lockup in the delegation recovery code 2020-01-29 10:24:17 +01:00
dir.c NFS: LOOKUP_DIRECTORY is also ok with symlinks 2022-02-23 11:56:40 +01:00
direct.c SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-31 16:44:02 +02:00
dns_resolve.c
dns_resolve.h
file.c SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-31 16:44:02 +02:00
fscache-index.c
fscache.c
fscache.h
getroot.c
inode.c statx: Add a system call to make enhanced file info available 2025-07-10 14:15:39 -04:00
internal.h NFS: nfs_igrab_and_active must first reference the superblock 2021-01-23 15:38:17 +01:00
io.c
iostat.h
Kconfig nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default 2021-03-30 14:41:39 +02:00
Makefile
mount_clnt.c
namespace.c statx: Add a system call to make enhanced file info available 2025-07-10 14:15:39 -04:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl 2020-05-05 19:14:40 +02:00
nfs3client.c
nfs3proc.c nfs: fix acl memory leak of posix_acl_create() 2021-07-20 16:21:14 +02:00
nfs3super.c
nfs3xdr.c NFS: Correct size calculation for create reply length 2021-03-30 14:41:39 +02:00
nfs4_fs.h NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim() 2019-09-06 10:19:33 +02:00
nfs4client.c nfs4: Fix kmemleak when allocate slot failed 2022-11-10 15:46:05 +01:00
nfs4file.c NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config 2021-06-03 08:23:30 +02:00
nfs4getroot.c
nfs4idmap.c This is the 4.9.111 stable release 2018-07-03 18:27:19 +02:00
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn 2023-01-07 12:07:18 +01:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot 2022-11-10 15:46:05 +01:00
nfs4super.c
nfs4sysctl.c nfs: Do not convert nfs_idmap_cache_timeout to jiffies 2018-05-30 07:50:20 +02:00
nfs4trace.c
nfs4trace.h
nfs4xdr.c NFSv4.2: Fix a memory stomp in decode_attr_security_label 2023-01-07 12:07:18 +01:00
nfs42.h
nfs42proc.c NFSv42: Fix pagecache invalidation after COPY/CLONE 2021-12-08 08:45:05 +01:00
nfs42xdr.c NFSv42: Don't fail clone() unless the OP_CLONE operation failed 2021-12-08 08:45:03 +01:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce() 2021-06-03 08:23:30 +02:00
pnfs.c pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE 2022-06-25 11:45:17 +02:00
pnfs.h
pnfs_dev.c
pnfs_nfs.c pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds 2021-11-26 11:48:37 +01:00
proc.c NFSv2: Fix write regression 2019-09-21 07:14:16 +02:00
read.c
super.c fs/nfs: Fix nfs_parse_devname to not modify it's argument 2020-01-29 10:24:17 +01:00
symlink.c
sysctl.c
unlink.c
write.c treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00