fix missing vmalloc.h includes
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 21 Mar 2024 16:36:23 +0000 (09:36 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 26 Apr 2024 03:55:49 +0000 (20:55 -0700)
Patch series "Memory allocation profiling", v6.

Overview:
Low overhead [1] per-callsite memory allocation profiling. Not just for
debug kernels, overhead low enough to be deployed in production.

Example output:
  root@moria-kvm:~# sort -rn /proc/allocinfo
   127664128    31168 mm/page_ext.c:270 func:alloc_page_ext
    56373248     4737 mm/slub.c:2259 func:alloc_slab_page
    14880768     3633 mm/readahead.c:247 func:page_cache_ra_unbounded
    14417920     3520 mm/mm_init.c:2530 func:alloc_large_system_hash
    13377536      234 block/blk-mq.c:3421 func:blk_mq_alloc_rqs
    11718656     2861 mm/filemap.c:1919 func:__filemap_get_folio
     9192960     2800 kernel/fork.c:307 func:alloc_thread_stack_node
     4206592        4 net/netfilter/nf_conntrack_core.c:2567 func:nf_ct_alloc_hashtable
     4136960     1010 drivers/staging/ctagmod/ctagmod.c:20 [ctagmod] func:ctagmod_start
     3940352      962 mm/memory.c:4214 func:alloc_anon_folio
     2894464    22613 fs/kernfs/dir.c:615 func:__kernfs_new_node
     ...

Usage:
kconfig options:
 - CONFIG_MEM_ALLOC_PROFILING
 - CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT
 - CONFIG_MEM_ALLOC_PROFILING_DEBUG
   adds warnings for allocations that weren't accounted because of a
   missing annotation

sysctl:
  /proc/sys/vm/mem_profiling

Runtime info:
  /proc/allocinfo

Notes:

[1]: Overhead
To measure the overhead we are comparing the following configurations:
(1) Baseline with CONFIG_MEMCG_KMEM=n
(2) Disabled by default (CONFIG_MEM_ALLOC_PROFILING=y &&
    CONFIG_MEM_ALLOC_PROFILING_BY_DEFAULT=n)
(3) Enabled by default (CONFIG_MEM_ALLOC_PROFILING=y &&
    CONFIG_MEM_ALLOC_PROFILING_BY_DEFAULT=y)
(4) Enabled at runtime (CONFIG_MEM_ALLOC_PROFILING=y &&
    CONFIG_MEM_ALLOC_PROFILING_BY_DEFAULT=n && /proc/sys/vm/mem_profiling=1)
(5) Baseline with CONFIG_MEMCG_KMEM=y && allocating with __GFP_ACCOUNT
(6) Disabled by default (CONFIG_MEM_ALLOC_PROFILING=y &&
    CONFIG_MEM_ALLOC_PROFILING_BY_DEFAULT=n)  && CONFIG_MEMCG_KMEM=y
(7) Enabled by default (CONFIG_MEM_ALLOC_PROFILING=y &&
    CONFIG_MEM_ALLOC_PROFILING_BY_DEFAULT=y) && CONFIG_MEMCG_KMEM=y

Performance overhead:
To evaluate performance we implemented an in-kernel test executing
multiple get_free_page/free_page and kmalloc/kfree calls with allocation
sizes growing from 8 to 240 bytes with CPU frequency set to max and CPU
affinity set to a specific CPU to minimize the noise. Below are results
from running the test on Ubuntu 22.04.2 LTS with 6.8.0-rc1 kernel on
56 core Intel Xeon:

                        kmalloc                 pgalloc
(1 baseline)            6.764s                  16.902s
(2 default disabled)    6.793s  (+0.43%)        17.007s (+0.62%)
(3 default enabled)     7.197s  (+6.40%)        23.666s (+40.02%)
(4 runtime enabled)     7.405s  (+9.48%)        23.901s (+41.41%)
(5 memcg)               13.388s (+97.94%)       48.460s (+186.71%)
(6 def disabled+memcg)  13.332s (+97.10%)       48.105s (+184.61%)
(7 def enabled+memcg)   13.446s (+98.78%)       54.963s (+225.18%)

Memory overhead:
Kernel size:

   text           data        bss         dec         diff
(1) 26515311       18890222    17018880    62424413
(2) 26524728       19423818    16740352    62688898    264485
(3) 26524724       19423818    16740352    62688894    264481
(4) 26524728       19423818    16740352    62688898    264485
(5) 26541782       18964374    16957440    62463596    39183

Memory consumption on a 56 core Intel CPU with 125GB of memory:
Code tags:           192 kB
PageExts:         262144 kB (256MB)
SlabExts:           9876 kB (9.6MB)
PcpuExts:            512 kB (0.5MB)

Total overhead is 0.2% of total memory.

Benchmarks:

Hackbench tests run 100 times:
hackbench -s 512 -l 200 -g 15 -f 25 -P
      baseline       disabled profiling           enabled profiling
avg   0.3543         0.3559 (+0.0016)             0.3566 (+0.0023)
stdev 0.0137         0.0188                       0.0077

hackbench -l 10000
      baseline       disabled profiling           enabled profiling
avg   6.4218         6.4306 (+0.0088)             6.5077 (+0.0859)
stdev 0.0933         0.0286                       0.0489

stress-ng tests:
stress-ng --class memory --seq 4 -t 60
stress-ng --class cpu --seq 4 -t 60
Results posted at: https://evilpiepirate.org/~kent/memalloc_prof_v4_stress-ng/

[2] https://lore.kernel.org/all/20240306182440.2003814-1-surenb@google.com/

This patch (of 37):

The next patch drops vmalloc.h from a system header in order to fix a
circular dependency; this adds it to all the files that were pulling it in
implicitly.

[kent.overstreet@linux.dev: fix arch/alpha/lib/memcpy.c]
Link: https://lkml.kernel.org/r/20240327002152.3339937-1-kent.overstreet@linux.dev
[surenb@google.com: fix arch/x86/mm/numa_32.c]
Link: https://lkml.kernel.org/r/20240402180933.1663992-1-surenb@google.com
[kent.overstreet@linux.dev: a few places were depending on sizes.h]
Link: https://lkml.kernel.org/r/20240404034744.1664840-1-kent.overstreet@linux.dev
[arnd@arndb.de: fix mm/kasan/hw_tags.c]
Link: https://lkml.kernel.org/r/20240404124435.3121534-1-arnd@kernel.org
[surenb@google.com: fix arc build]
Link: https://lkml.kernel.org/r/20240405225115.431056-1-surenb@google.com
Link: https://lkml.kernel.org/r/20240321163705.3067592-1-surenb@google.com
Link: https://lkml.kernel.org/r/20240321163705.3067592-2-surenb@google.com
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>
Tested-by: Kees Cook <keescook@chromium.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Andreas Hindborg <a.hindborg@samsung.com>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: "Björn Roy Baron" <bjorn3_gh@protonmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Gary Guo <gary@garyguo.net>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Wedson Almeida Filho <wedsonaf@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
56 files changed:
arch/alpha/lib/checksum.c
arch/alpha/lib/fpreg.c
arch/arc/include/asm/mmu-arcv2.h
arch/arm/kernel/irq.c
arch/arm/kernel/traps.c
arch/arm64/kernel/efi.c
arch/loongarch/include/asm/kfence.h
arch/powerpc/kernel/iommu.c
arch/powerpc/mm/mem.c
arch/riscv/kernel/elf_kexec.c
arch/riscv/kernel/probes/kprobes.c
arch/s390/kernel/cert_store.c
arch/s390/kernel/ipl.c
arch/x86/include/asm/io.h
arch/x86/kernel/cpu/sgx/main.c
arch/x86/kernel/irq_64.c
arch/x86/mm/fault.c
arch/x86/mm/numa_32.c
drivers/accel/ivpu/ivpu_mmu_context.c
drivers/gpu/drm/gma500/mmu.c
drivers/gpu/drm/i915/gem/i915_gem_pages.c
drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c
drivers/gpu/drm/i915/gt/shmem_utils.c
drivers/gpu/drm/i915/gvt/firmware.c
drivers/gpu/drm/i915/gvt/gtt.c
drivers/gpu/drm/i915/gvt/handlers.c
drivers/gpu/drm/i915/gvt/mmio.c
drivers/gpu/drm/i915/gvt/vgpu.c
drivers/gpu/drm/i915/intel_gvt.c
drivers/gpu/drm/imagination/pvr_vm_mips.c
drivers/gpu/drm/mediatek/mtk_drm_gem.c
drivers/gpu/drm/omapdrm/omap_gem.c
drivers/gpu/drm/v3d/v3d_bo.c
drivers/gpu/drm/vmwgfx/vmwgfx_binding.c
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
drivers/gpu/drm/vmwgfx/vmwgfx_devcaps.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
drivers/gpu/drm/xen/xen_drm_front_gem.c
drivers/hwtracing/coresight/coresight-trbe.c
drivers/net/ethernet/marvell/octeon_ep/octep_pfvf_mbox.c
drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_mbox.c
drivers/net/ethernet/microsoft/mana/hw_channel.c
drivers/platform/x86/uv_sysfs.c
drivers/scsi/mpi3mr/mpi3mr_transport.c
drivers/vfio/pci/pds/dirty.c
drivers/virt/acrn/mm.c
drivers/virtio/virtio_mem.c
include/asm-generic/io.h
include/linux/io.h
include/linux/pds/pds_common.h
include/rdma/rdmavt_qp.h
mm/debug_vm_pgtable.c
mm/kasan/hw_tags.c
sound/pci/hda/cs35l41_hda.c

index 3f35c3ed694886547e37825d95e6892ed5bee425..c29b98ef9c82670a8ca002f4402a0983c4936c36 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/string.h>
 
 #include <asm/byteorder.h>
+#include <asm/checksum.h>
 
 static inline unsigned short from64to16(unsigned long x)
 {
index 7c08b225261c4add9b50b62a907239d30ecd4cf1..3d32165043f8b137fefa08b284ed3943861c1745 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/compiler.h>
 #include <linux/export.h>
 #include <linux/preempt.h>
+#include <asm/fpu.h>
 #include <asm/thread_info.h>
 
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
index ed9036d4ede310a25e061d431b6c865cec42a17a..d85dc07219071f34cf5a0b6e84bc8f6ab14ef36b 100644 (file)
@@ -9,6 +9,8 @@
 #ifndef _ASM_ARC_MMU_ARCV2_H
 #define _ASM_ARC_MMU_ARCV2_H
 
+#include <soc/arc/aux.h>
+
 /*
  * TLB Management regs
  */
index fe28fc1f759d9372ef6f44e43a0b959d67579c8d..dab42d066d068b4f2151f98955005bd82012ac00 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/kallsyms.h>
 #include <linux/proc_fs.h>
 #include <linux/export.h>
+#include <linux/vmalloc.h>
 
 #include <asm/hardware/cache-l2x0.h>
 #include <asm/hardware/cache-uniphier.h>
index 72c82a4d63ac206b5d4f96f7504a111abd688b09..480e307501bb4b3ff102bd9497664655f4d62661 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/sched/debug.h>
 #include <linux/sched/task_stack.h>
 #include <linux/irq.h>
+#include <linux/vmalloc.h>
 
 #include <linux/atomic.h>
 #include <asm/cacheflush.h>
index 9afcc690fe73c2e570e07a4757bc7e6b513cc81a..4a92096db34e0ba17d92622275f80b7a26e21834 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/efi.h>
 #include <linux/init.h>
 #include <linux/screen_info.h>
+#include <linux/vmalloc.h>
 
 #include <asm/efi.h>
 #include <asm/stacktrace.h>
index a6a5760da3a3323641e3fa422f3da87cdb4b66f8..92636e82957c7ed58201073c1477c68568421602 100644 (file)
@@ -10,6 +10,7 @@
 #define _ASM_LOONGARCH_KFENCE_H
 
 #include <linux/kfence.h>
+#include <linux/vmalloc.h>
 #include <asm/pgtable.h>
 #include <asm/tlb.h>
 
index 1185efebf032b6e7d2cf08db4c953938948a44b1..65468d0829e1c96819c626f88e602b3079cf4dd2 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/iommu.h>
 #include <linux/sched.h>
 #include <linux/debugfs.h>
+#include <linux/vmalloc.h>
 #include <asm/io.h>
 #include <asm/iommu.h>
 #include <asm/pci-bridge.h>
index 3a440004b97d2b2b94aaa1fc0b05a76397a79953..a197d4c2244b328ab4a0e878f4a8285d9c22b132 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/highmem.h>
 #include <linux/suspend.h>
 #include <linux/dma-direct.h>
+#include <linux/vmalloc.h>
 
 #include <asm/swiotlb.h>
 #include <asm/machdep.h>
index 54260c16f9912aa81a738d783863cb97030aac8e..11c0d2e0becfe922440525042459f500e6a6df26 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/libfdt.h>
 #include <linux/types.h>
 #include <linux/memblock.h>
+#include <linux/vmalloc.h>
 #include <asm/setup.h>
 
 int arch_kimage_file_post_load_cleanup(struct kimage *image)
index 2f08c14a933d05299a15677451d1ed28f81e304d..71a8b8945b26fd375282642871fd682bc4d78622 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/extable.h>
 #include <linux/slab.h>
 #include <linux/stop_machine.h>
+#include <linux/vmalloc.h>
 #include <asm/ptrace.h>
 #include <linux/uaccess.h>
 #include <asm/sections.h>
index 554447768bddc7d0d27aa16ddbf0727c6ef95d4e..bf983513dd333bb674065b2fe2f39fdbde311a39 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/seq_file.h>
 #include <linux/slab.h>
 #include <linux/sysfs.h>
+#include <linux/vmalloc.h>
 #include <crypto/sha2.h>
 #include <keys/user-type.h>
 #include <asm/debug.h>
index 1486350a417751736b9bc934bd424fa9efc3de15..5d6d381aa0be4aa0a4589fe15e44afa9bf76292d 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/gfp.h>
 #include <linux/crash_dump.h>
 #include <linux/debug_locks.h>
+#include <linux/vmalloc.h>
 #include <asm/asm-extable.h>
 #include <asm/diag.h>
 #include <asm/ipl.h>
index 294cd2a40818129a1032f24b7d3ba89a99258e23..7452fc193b4f9e20f994e6c03918f0880948a0fc 100644 (file)
@@ -42,6 +42,7 @@
 #include <asm/early_ioremap.h>
 #include <asm/pgtable_types.h>
 #include <asm/shared/io.h>
+#include <asm/special_insns.h>
 
 #define build_mmio_read(name, size, type, reg, barrier) \
 static inline type name(const volatile void __iomem *addr) \
index 166692f2d501112a887106971212cc1b8e6c2856..27892e57c4ef935b58f8bf732639c892f6290b05 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/sched/signal.h>
 #include <linux/slab.h>
 #include <linux/sysfs.h>
+#include <linux/vmalloc.h>
 #include <asm/sgx.h>
 #include "driver.h"
 #include "encl.h"
index fe0c859873d17ef472aa92aac419bc427073c6e9..ade0043ce56efedb1ccd4cc1d1003c7974379e75 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/uaccess.h>
 #include <linux/smp.h>
 #include <linux/sched/task_stack.h>
+#include <linux/vmalloc.h>
 
 #include <asm/cpu_entry_area.h>
 #include <asm/softirq_stack.h>
index 622d12ec7f08518ba6701c33efd74d5f77545806..a4cc20d0036d4a7a8538381935cb62e55179bfc6 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/efi.h>                 /* efi_crash_gracefully_on_page_fault()*/
 #include <linux/mm_types.h>
 #include <linux/mm.h>                  /* find_and_lock_vma() */
+#include <linux/vmalloc.h>
 
 #include <asm/cpufeature.h>            /* boot_cpu_has, ...            */
 #include <asm/traps.h>                 /* dotraplinkage, ...           */
index 025fd7ea5d69f5bfba07a712a14ef85671d68af5..65fda406e6f265a1072d675bf70533439015720f 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <linux/memblock.h>
 #include <linux/init.h>
+#include <linux/vmalloc.h>
 #include <asm/pgtable_areas.h>
 
 #include "numa_internal.h"
index fe61612992364c65d184eef9c3a3ad3ebb60ce6a..128aef8e5a199959c0c6391e4d3b34a8229078af 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/bitfield.h>
 #include <linux/highmem.h>
 #include <linux/set_memory.h>
+#include <linux/vmalloc.h>
 
 #include <drm/drm_cache.h>
 
index a70b01ccdf7022fc1431f53e57173aad68fb0468..4d78b33eaa8230419aeab56510c58b475763301a 100644 (file)
@@ -5,6 +5,7 @@
  **************************************************************************/
 
 #include <linux/highmem.h>
+#include <linux/vmalloc.h>
 
 #include "mmu.h"
 #include "psb_drv.h"
index 0ba955611dfb543b1c87b6de1d11faeecbf988f8..8780aa243105355a555c56e83cdfab78496942d6 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <drm/drm_cache.h>
+#include <linux/vmalloc.h>
 
 #include "gt/intel_gt.h"
 #include "gt/intel_tlb.h"
index b2a5882b8f81a0814435dd49cd39dcbbd1773113..075657018739220393d1a8db24f2581bf5717630 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright © 2016 Intel Corporation
  */
 
+#include <linux/vmalloc.h>
 #include "mock_dmabuf.h"
 
 static struct sg_table *mock_map_dma_buf(struct dma_buf_attachment *attachment,
index bccc3a1200bc6e512a8b2cadbcfe9c79aad1fd3a..1fb6ff77fd899111a0797dac0edd3f2cfa01f42d 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/mm.h>
 #include <linux/pagemap.h>
 #include <linux/shmem_fs.h>
+#include <linux/vmalloc.h>
 
 #include "i915_drv.h"
 #include "gem/i915_gem_object.h"
index 4dd52ac2043e7ac4b3ee23ff6c2fa6e3dfbc693d..d800d267f0e9bd31873f5a803e3b7eb392475a10 100644 (file)
@@ -30,6 +30,7 @@
 
 #include <linux/firmware.h>
 #include <linux/crc32.h>
+#include <linux/vmalloc.h>
 
 #include "i915_drv.h"
 #include "gvt.h"
index 094fca9b0e73d1da202dd738c52256bc736739ee..58cca4906f4135f16901337c3b34fcb0bcbe2123 100644 (file)
@@ -39,6 +39,7 @@
 #include "trace.h"
 
 #include "gt/intel_gt_regs.h"
+#include <linux/vmalloc.h>
 
 #if defined(VERBOSE_DEBUG)
 #define gvt_vdbg_mm(fmt, args...) gvt_dbg_mm(fmt, ##args)
index efcb00472be24779590fcce94753ab83a787f2c4..ea9c300927671fa19f4194d0d6e6af1b9d8f4210 100644 (file)
@@ -52,6 +52,7 @@
 #include "display/skl_watermark_regs.h"
 #include "display/vlv_dsi_pll_regs.h"
 #include "gt/intel_gt_regs.h"
+#include <linux/vmalloc.h>
 
 /* XXX FIXME i915 has changed PP_XXX definition */
 #define PCH_PP_STATUS  _MMIO(0xc7200)
index 5b5def6ddef7ae6041958bde1064183bc95ef0fd..780762f28aa4fbf1ec1f1b4a3b97a429280b529a 100644 (file)
@@ -33,6 +33,7 @@
  *
  */
 
+#include <linux/vmalloc.h>
 #include "i915_drv.h"
 #include "i915_reg.h"
 #include "gvt.h"
index 08ad1bd651f103f4217bfd830321e8d64b7c211e..63c751ca411964e19b74a33839f5ab7c950f802e 100644 (file)
@@ -34,6 +34,7 @@
 #include "i915_drv.h"
 #include "gvt.h"
 #include "i915_pvinfo.h"
+#include <linux/vmalloc.h>
 
 void populate_pvinfo_page(struct intel_vgpu *vgpu)
 {
index 9b6d87c8b5831c14aec9bbc425a374f0721f0273..5a01d60e51861e9ef6e4276db405561d3f7cc076 100644 (file)
@@ -28,6 +28,7 @@
 #include "gt/intel_context.h"
 #include "gt/intel_ring.h"
 #include "gt/shmem_utils.h"
+#include <linux/vmalloc.h>
 
 /**
  * DOC: Intel GVT-g host support
index b7fef3c797e6caca1cac6a48476404d0d5b0359a..6563dcde109cda622948269ac69c15b557cc6706 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/err.h>
 #include <linux/slab.h>
 #include <linux/types.h>
+#include <linux/vmalloc.h>
 
 /**
  * pvr_vm_mips_init() - Initialise MIPS FW pagetable
index 4f2e3feabc0f8afd76b43db5d637d83746764c58..3e519869b632c6e360b89713cf555bf9a2881a28 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <linux/dma-buf.h>
+#include <linux/vmalloc.h>
 
 #include <drm/drm.h>
 #include <drm/drm_device.h>
index 3421e8389222a4559264d405b9e124f8f26e4f64..9ea0c64c26b5c85b753e59b92e43110ec4a9fc5d 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/shmem_fs.h>
 #include <linux/spinlock.h>
 #include <linux/pfn_t.h>
+#include <linux/vmalloc.h>
 
 #include <drm/drm_prime.h>
 #include <drm/drm_vma_manager.h>
index a07ede668cc1617c84fa956cfb78b5cab77af003..a165cbcdd27b944ceeb9a8824d2f38cc4f1e7d05 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <linux/dma-buf.h>
 #include <linux/pfn_t.h>
+#include <linux/vmalloc.h>
 
 #include "v3d_drv.h"
 #include "uapi/drm/v3d_drm.h"
index ae2de914eb890edde9fe2988f042a8fcb99453e0..2731f6ded1c28cd19fdf595797ffc8cebfd38e04 100644 (file)
@@ -54,6 +54,7 @@
 #include "vmwgfx_drv.h"
 #include "vmwgfx_binding.h"
 #include "device_include/svga3d_reg.h"
+#include <linux/vmalloc.h>
 
 #define VMW_BINDING_RT_BIT     0
 #define VMW_BINDING_PS_BIT     1
index 195ff8792e5aba71399d9b4ca6fa3ceab4ad8add..dd4ca6a9c690bd4d731558a3d67b67d1a7ab3c41 100644 (file)
@@ -31,6 +31,7 @@
 #include <drm/ttm/ttm_placement.h>
 
 #include <linux/sched/signal.h>
+#include <linux/vmalloc.h>
 
 bool vmw_supports_3d(struct vmw_private *dev_priv)
 {
index 829df395c2ed7f7b44b5f1df2f08aeeb0f7880a3..6e6beff9e2621b0468f4030416d46c7304011038 100644 (file)
@@ -25,6 +25,7 @@
  *
  **************************************************************************/
 
+#include <linux/vmalloc.h>
 #include "vmwgfx_devcaps.h"
 
 #include "vmwgfx_drv.h"
index 0a304706e01322a6372727a27eb3fd0330471b31..f8504a2e049e00b2694d70f565e7f3b92b8b05b0 100644 (file)
@@ -53,6 +53,7 @@
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/version.h>
+#include <linux/vmalloc.h>
 
 #define VMWGFX_DRIVER_DESC "Linux drm driver for VMware graphics devices"
 
index cc3086e649eb5cb7c9a8ba3a54aa5745d05700ce..2e52d73eba4840a5502adc594d39bc06565d51d4 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <linux/sync_file.h>
 #include <linux/hashtable.h>
+#include <linux/vmalloc.h>
 
 /*
  * Helper macro to get dx_ctx_node if available otherwise print an error
index a1da5678c73140667a2521bf9cc5185e9bd49829..835d1eed8dd9314bff425e99d0c87cd6cfeaeacf 100644 (file)
@@ -31,6 +31,7 @@
 
 #include <drm/vmwgfx_drm.h>
 #include <linux/pci.h>
+#include <linux/vmalloc.h>
 
 int vmw_getparam_ioctl(struct drm_device *dev, void *data,
                       struct drm_file *file_priv)
index 3ad2b4cfd1f0b2bd3db6d32a70091789111509c4..63112ed975c472bdcf74bbed5620d628b8400c11 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/dma-buf.h>
 #include <linux/scatterlist.h>
 #include <linux/shmem_fs.h>
+#include <linux/vmalloc.h>
 
 #include <drm/drm_gem.h>
 #include <drm/drm_prime.h>
index 6136776482e6d8d9e5db5ce93464352de0ee1f3e..96a32b2136699402aaee09517132afb5b1a100cd 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <asm/barrier.h>
 #include <asm/cpufeature.h>
+#include <linux/vmalloc.h>
 
 #include "coresight-self-hosted-trace.h"
 #include "coresight-trbe.h"
index 2e2c3be8a0b429c70500f38d9ea8c53a01c26c7a..e6eb98d70f3c427c5e01a76a100e70420f0bb7c0 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/io.h>
 #include <linux/pci.h>
 #include <linux/etherdevice.h>
+#include <linux/vmalloc.h>
 
 #include "octep_config.h"
 #include "octep_main.h"
index 2eab21e43048a1149745874bfddbc053ccb2b6af..445b626efe11d787048c06c2f6effb7cab1ca160 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/netdevice.h>
+#include <linux/vmalloc.h>
 #include "octep_vf_config.h"
 #include "octep_vf_main.h"
 
index 2729a2c5acf9cc385206dda3924d3d9b05ab25bf..11021c34e47e7c6346d2ba416d28c24b2c1aff8b 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <net/mana/gdma.h>
 #include <net/mana/hw_channel.h>
+#include <linux/vmalloc.h>
 
 static int mana_hwc_get_msg_index(struct hw_channel_context *hwc, u16 *msg_id)
 {
index 38d1b692d3c0aad9149b7b8ac9e5624c2b0437b5..40e0108771893bd5c7a4b951e0a475281ddb85f6 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/device.h>
 #include <linux/slab.h>
 #include <linux/kobject.h>
+#include <linux/vmalloc.h>
 #include <asm/uv/bios.h>
 #include <asm/uv/uv.h>
 #include <asm/uv/uv_hub.h>
index d32ad46318cb09af970085b3ab00fc376a934e4f..dabb91f0f75df91b65720eb4ee826ac16524b2dd 100644 (file)
@@ -7,6 +7,8 @@
  *
  */
 
+#include <linux/vmalloc.h>
+
 #include "mpi3mr.h"
 
 /**
index 68e8f006dfdbf7faf3790c8b9324055f98f00544..c51f5e4c3dd6d2faaff65c2d902077b4f6c3dc56 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <linux/interval_tree.h>
 #include <linux/vfio.h>
+#include <linux/vmalloc.h>
 
 #include <linux/pds/pds_common.h>
 #include <linux/pds/pds_core_if.h>
index fa5d9ca6be5706fbe77bd952327c905447fe504f..c088ee1f1180428b932ff988bfa3398142603bd2 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/io.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 
 #include "acrn_drv.h"
 
index 8e32232944423771f4e94837c82d643a87deeb51..e8355f55a8f7e8a8ddf4025514c5d171559d8d51 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/bitmap.h>
 #include <linux/lockdep.h>
 #include <linux/log2.h>
+#include <linux/vmalloc.h>
 
 #include <acpi/acpi_numa.h>
 
index bac63e874c7bf91e4471d59d5e944e3cd9cf6e42..d4e1f042c9eb3c8fc85a49f86c8b50af5458164c 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <asm/page.h> /* I/O is all done through memory accesses */
 #include <linux/string.h> /* for memset() and memcpy() */
+#include <linux/sizes.h>
 #include <linux/types.h>
 #include <linux/instruction_pointer.h>
 
index 235ba7d80a8f0d76e9d33b772226ebab40bfe8fd..e8ee40ee1843b2a1556430b368bd293405ef13ea 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef _LINUX_IO_H
 #define _LINUX_IO_H
 
+#include <linux/sizes.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/bug.h>
index 30581e2e04cc1f21ec8d17d17d3743f479a120a9..5802e1deef24b54e4b788d6b67883ac0af312e60 100644 (file)
@@ -4,6 +4,8 @@
 #ifndef _PDS_COMMON_H_
 #define _PDS_COMMON_H_
 
+#include <linux/notifier.h>
+
 #define PDS_CORE_DRV_NAME                      "pds_core"
 
 /* the device's internal addressing uses up to 52 bits */
index 2e58d5e6ac0e46d76a4346e28134e341cfe7dde1..d678929441933bca92ba0b8acb1f23a205a9ab2a 100644 (file)
@@ -11,6 +11,7 @@
 #include <rdma/ib_verbs.h>
 #include <rdma/rdmavt_cq.h>
 #include <rdma/rvt-abi.h>
+#include <linux/vmalloc.h>
 /*
  * Atomic bit definitions for r_aflags.
  */
index 65c19025da3dfee99ba0c1129874283bfcd5c72f..f1c9a2c5abc04c11ef115f9fbe89251edfd0f77a 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/start_kernel.h>
 #include <linux/sched/mm.h>
 #include <linux/io.h>
+#include <linux/vmalloc.h>
 
 #include <asm/cacheflush.h>
 #include <asm/pgalloc.h>
index 2b994092a2d430fbed8868c72f8cd7c1a9f2ee11..9958ebc15d38309955cd12184c4f431bca8c7d2a 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/static_key.h>
 #include <linux/string.h>
 #include <linux/types.h>
+#include <linux/vmalloc.h>
 
 #include "kasan.h"
 
index d3fa6e136744de4d7d34fe3c24ff3efa28588054..990b5bd717a1cba00dd79d2c39b8dfe560be538d 100644 (file)
@@ -13,6 +13,7 @@
 #include <sound/soc.h>
 #include <linux/pm_runtime.h>
 #include <linux/spi/spi.h>
+#include <linux/vmalloc.h>
 #include "hda_local.h"
 #include "hda_auto_parser.h"
 #include "hda_jack.h"