android_kernel_sony_sdm845/include/asm-generic
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
..
bitops bitops: Do not default to __clear_bit() for __clear_bit_unlock() 2016-03-21 10:50:48 +01:00
4level-fixup.h mm, asm-generic: define PUD_SHIFT in <asm-generic/4level-fixup.h> 2015-02-11 17:06:03 -08:00
asm-offsets.h asm-generic: Add common asm-offsets.h 2015-06-23 13:35:49 +09:00
asm-prototypes.h asm-prototypes: Clear any CPP defines before declaring the functions 2017-01-12 11:39:07 +01:00
atomic-long.h locking/atomic: Add atomic_cond_read_acquire() 2018-06-25 00:07:14 -07:00
atomic.h locking/atomic: Remove linux/atomic.h:atomic_fetch_or() 2016-06-16 10:48:32 +02:00
atomic64.h locking/atomic: Implement atomic{,64,_long}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}() 2016-06-16 10:48:32 +02:00
audit_change_attr.h audit: Modify a set of system calls in audit class definitions 2014-01-17 17:01:46 -05:00
audit_dir_write.h
audit_read.h
audit_signal.h
audit_write.h audit: Modify a set of system calls in audit class definitions 2014-01-17 17:01:46 -05:00
barrier.h locking/spinlock, arch: Update and fix spin_unlock_wait() implementations 2016-06-14 11:55:15 +02:00
bitops.h arch: Prepare for smp_mb__{before,after}_atomic() 2014-04-18 11:40:30 +02:00
bitsperlong.h
bug.h bug.h: work around GCC PR82365 in BUG() 2019-07-10 09:55:44 +02:00
bugs.h
cache.h
cacheflush.h
checksum.h ipv4: Update parameters for csum_tcpudp_magic to their original types 2016-03-13 23:55:13 -04:00
clkdev.h asm-generic: COMMON_CLK defines __clk_{get,put} 2014-09-25 18:00:45 -07:00
cmpxchg-local.h LLVMLinux: Remove warning about returning an uninitialized variable 2014-04-09 13:44:35 -07:00
cmpxchg.h asm-generic: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations 2015-10-15 00:21:13 +02:00
cputime.h
cputime_jiffies.h sched, time: Fix build error with 64 bit cputime_t on 32 bit systems 2014-10-03 05:46:55 +02:00
cputime_nsecs.h sched/cputime: Count actually elapsed irq & softirq time 2016-07-14 10:42:34 +02:00
current.h
delay.h
device.h
div64.h __div64_32(): make it overridable at compile time 2015-11-16 14:42:12 -05:00
dma-contiguous.h asm-generic: Add dma-contiguous.h 2014-09-22 13:35:51 +02:00
dma.h
early_ioremap.h Merge branch 'akpm' (patches from Andrew) 2015-09-08 17:52:23 -07:00
emergency-restart.h
exec.h
export.h Revert "default exported asm symbols to zero" 2016-12-07 08:39:00 -08:00
fb.h
fixmap.h asm-generic: Fix local variable shadow in __set_fixmap_offset 2016-02-16 15:10:44 +00:00
ftrace.h
futex.h futex: Remove duplicated code and fix undefined behaviour 2018-05-19 10:27:00 +02:00
getorder.h asm-generic: fix -Wtype-limits compiler warnings 2019-08-25 10:51:50 +02:00
gpio.h gpio: allow setting ARCH_NR_GPIOS from Kconfig 2016-02-19 00:22:54 +01:00
hardirq.h
hugetlb.h mm: Fix generic hugetlb pte check return type. 2013-10-02 20:02:35 -04:00
hw_irq.h
ide_iops.h
int-ll64.h
io.h asm-generic/io.h: add io{read,write}64 accessors 2016-05-31 16:41:50 +08:00
ioctl.h include/asm-generic/ioctl.h: fix _IOC_TYPECHECK sparse error 2014-06-06 16:08:13 -07:00
iomap.h asm-generic/io.h: add io{read,write}64 accessors 2016-05-31 16:41:50 +08:00
irq.h
irq_regs.h
irq_work.h irq_work: Introduce arch_irq_work_has_interrupt() 2014-09-13 18:38:07 +02:00
irqflags.h
kdebug.h
kmap_types.h
kvm_para.h
linkage.h
local.h
local64.h
mcs_spinlock.h locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
memory_model.h mm: add PHYS_PFN, use it in __phys_to_pfn() 2016-01-14 16:00:49 -08:00
mm-arch-hooks.h mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
mm_hooks.h mm/core, x86/mm/pkeys: Differentiate instruction fetches 2016-02-18 19:46:29 +01:00
mmu.h
mmu_context.h asm-generic: Remove asm-generic arch_bprm_mm_init() 2014-11-22 21:52:08 +01:00
module.h
msi.h asm-generic: Add msi.h 2014-11-23 13:01:47 +01:00
mutex-dec.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
mutex-null.h
mutex-xchg.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
mutex.h
okl4_virq.h aarch64: add core okl4 hypervisor config 2018-11-28 23:42:02 -08:00
page.h asm-generic: page.h: Remove useless get_user_page and free_user_page 2016-02-26 15:24:55 +01:00
param.h
parport.h
pci.h PCI: Remove unused pcibios_select_root() (again) 2015-06-08 07:56:21 -05:00
pci_iomap.h PCI: Add pci_iomap_wc() variants 2015-08-25 09:59:45 +02:00
percpu.h percpu: make this_cpu_generic_read() atomic w.r.t. interrupts 2017-10-12 11:51:23 +02:00
pgalloc.h
pgtable-nopmd.h
pgtable-nopud.h
pgtable.h treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
preempt.h sched/preempt: Fix preempt_count manipulations 2016-05-17 12:24:21 +02:00
ptrace.h
qrwlock.h locking/qrwlock: Prevent slowpath writers getting held up by fastpath 2018-06-25 03:25:29 -07:00
qrwlock_types.h locking/qrwlock: Prevent slowpath writers getting held up by fastpath 2018-06-25 03:25:29 -07:00
qspinlock.h locking/qspinlock: Use atomic_sub_return_release() in queued_spin_unlock() 2016-06-08 15:17:01 +02:00
qspinlock_types.h locking/qspinlock: Pull in asm/byteorder.h to ensure correct endianness 2019-01-26 09:38:36 +01:00
resource.h asm-generic: remove _STK_LIM_MAX 2014-05-15 00:32:09 +01:00
rwsem.h locking/rwsem: Remove rwsem_atomic_add() and rwsem_atomic_update() 2016-06-08 15:16:59 +02:00
seccomp.h seccomp: Get compat syscalls from asm-generic header 2016-05-13 14:02:00 +02:00
sections.h This is the 4.9.327 stable release 2022-09-05 14:02:59 +02:00
segment.h
serial.h
set_memory.h treewide: Backport new vmalloc for large performance benefits 2026-05-15 17:48:25 +07:00
siginfo.h SIGNAL: Move generic copy_siginfo() to signal.h 2016-05-13 14:02:10 +02:00
signal.h
simd.h crypto: create generic version of ablk_helper 2013-09-24 06:02:24 +10:00
sizes.h
spinlock.h
statfs.h
string.h
switch_to.h
syscall.h syscall.h: fix doc text for syscall_get_arch() 2014-09-23 16:20:00 -04:00
syscalls.h
termios-base.h
termios.h
timex.h
tlb.h mm/khugepaged: fix GUP-fast interaction by sending IPI 2023-01-07 12:07:10 +01:00
tlbflush.h
topology.h include/asm-generic/topology.h: guard cpumask_of_node() macro argument 2020-06-03 08:16:42 +02:00
trace_clock.h
uaccess-unaligned.h
uaccess.h exceptions: detritus removal 2016-09-27 21:15:14 -04:00
unaligned.h asm-generic: allow generic unaligned access if the arch supports it 2014-05-08 10:22:23 +02:00
unistd.h
user.h
vga.h
vmlinux.lds.h Linux 4.9.281 2021-08-27 14:37:08 +02:00
vtime.h include/asm-generic/vtime.h: avoid zero-length file 2013-09-30 14:31:02 -07:00
word-at-a-time.h Make asm/word-at-a-time.h available on all architectures 2015-07-08 16:41:55 -04:00
xor.h