android_kernel_sony_sdm845/net/ceph
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
..
crush crush: remove redundant local variable 2016-10-05 23:02:10 +02:00
armor.c
auth.c libceph: add authorizer challenge 2018-12-08 13:05:10 +01:00
auth_none.c libceph: rename ceph_entity_name_encode() -> ceph_auth_entity_name_encode() 2016-08-24 23:49:15 +02:00
auth_none.h libceph: make authorizer destruction independent of ceph_auth_client 2016-04-25 20:54:13 +02:00
auth_x.c libceph: fix CEPH_FEATURE_CEPHX_V2 check in calc_signature() 2019-01-13 10:03:50 +01:00
auth_x.h libceph: rename and align ceph_x_authorizer::reply_buf 2017-01-26 08:24:41 +01:00
auth_x_protocol.h libceph: add authorizer challenge 2018-12-08 13:05:10 +01:00
buffer.c libceph: nuke ceph_kvfree() 2014-12-17 20:09:50 +03:00
ceph_common.c treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
ceph_fs.c libceph: fix legacy layout decode with pool 0 2016-11-10 20:13:08 +01:00
ceph_hash.c
ceph_strings.c rbd: support for exclusive-lock feature 2016-08-24 23:49:16 +02:00
cls_lock_client.c libceph: support for lock.lock_info 2016-08-24 23:49:15 +02:00
crypto.c libceph: don't WARN() if user tries to add invalid key 2017-11-30 08:39:03 +00:00
crypto.h libceph: stop allocating a new cipher on every crypto request 2017-01-26 08:24:46 +01:00
debugfs.c libceph: rados pool namespace support 2016-07-28 02:55:37 +02:00
Kconfig libceph: select CRYPTO_CBC in addition to CRYPTO_AES 2014-10-14 21:03:20 +04:00
Makefile libceph: support for advisory locking on RADOS objects 2016-08-24 23:49:15 +02:00
messenger.c libceph: clear con->out_msg on Policy::stateful_server faults 2020-11-10 10:23:59 +01:00
mon_client.c libceph: wait for latest osdmap in ceph_monc_blacklist_add() 2019-03-27 14:13:02 +09:00
msgpool.c libceph: fix some missing includes 2016-07-28 02:55:35 +02:00
osd_client.c libceph: ignore pool overlay and cache logic on redirects 2020-06-03 08:16:41 +02:00
osdmap.c libceph: NULL deref on crush_decode() error path 2018-04-13 19:48:05 +02:00
pagelist.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
pagevec.c mm: replace get_user_pages_unlocked() write/force parameters with gup_flags 2016-10-18 14:13:37 -07:00
snapshot.c libceph: create source file "net/ceph/snapshot.c" 2013-05-01 21:20:08 -07:00
string_table.c libceph: using kfree_rcu() to simplify the code 2016-08-08 21:41:42 +02:00