X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fwrapper%2Fvmalloc.h;h=0fe6af8a75e2c7269638d2346a927ef1091ea1d0;hb=1158b2706e58c2f94e6bd746e0504b989320c0a1;hp=596fb9ed11a0885f3d9c388398dd607f1ec28ea1;hpb=3dfec2289896ff0f1a05a9e486f1585cd16beb84;p=lttng-modules.git diff --git a/include/wrapper/vmalloc.h b/include/wrapper/vmalloc.h index 596fb9ed..0fe6af8a 100644 --- a/include/wrapper/vmalloc.h +++ b/include/wrapper/vmalloc.h @@ -12,8 +12,9 @@ #ifndef _LTTNG_WRAPPER_VMALLOC_H #define _LTTNG_WRAPPER_VMALLOC_H -#include +#include #include +#include #include #ifdef CONFIG_KALLSYMS @@ -22,7 +23,7 @@ #include #include -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0)) /* * wrapper_vmalloc_sync_mappings was removed in v5.8, the vmalloc mappings @@ -32,17 +33,18 @@ static inline void wrapper_vmalloc_sync_mappings(void) {} -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \ +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) \ || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0) \ || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0) \ || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0) \ || LTTNG_KERNEL_RANGE(4,19,113, 4,20,0) \ || LTTNG_KERNEL_RANGE(4,14,175, 4,15,0) \ || LTTNG_KERNEL_RANGE(4,9,218, 4,10,0) \ - || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0)) \ + || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0) \ || LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,97, 4,16,0,0) \ || LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,48, 5,1,0,0) \ - || LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,52, 5,4,0,0) + || LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,52, 5,4,0,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,240,0,0, 4,19,0,0,0,0)) static inline void wrapper_vmalloc_sync_mappings(void) @@ -59,7 +61,7 @@ void wrapper_vmalloc_sync_mappings(void) * trigger recursive page faults. */ printk_once(KERN_WARNING "LTTng: vmalloc_sync_mappings symbol lookup failed.\n"); - printk_once(KERN_WARNING "Page fault handler and NMI tracing might trigger faults.\n"); + printk_once(KERN_WARNING "LTTng: Page fault handler and NMI tracing might trigger faults.\n"); #endif } } @@ -77,7 +79,7 @@ void __canary__vmalloc_sync_mappings(void) vmalloc_sync_mappings(); } -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */ +#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */ /* * Map vmalloc_sync_mappings to vmalloc_sync_all() on kernels before 5.6. @@ -97,7 +99,7 @@ void wrapper_vmalloc_sync_mappings(void) * trigger recursive page faults. */ printk_once(KERN_WARNING "LTTng: vmalloc_sync_all symbol lookup failed.\n"); - printk_once(KERN_WARNING "Page fault handler and NMI tracing might trigger faults.\n"); + printk_once(KERN_WARNING "LTTng: Page fault handler and NMI tracing might trigger faults.\n"); #endif } } @@ -115,11 +117,21 @@ void __canary__vmalloc_sync_all(void) vmalloc_sync_all(); } -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */ +#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */ -#else +#else /* CONFIG_KALLSYMS */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \ +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,8,0)) + +/* + * wrapper_vmalloc_sync_mappings was removed in v5.8, the vmalloc mappings + * are now synchronized when they are created or torn down. + */ +static inline +void wrapper_vmalloc_sync_mappings(void) +{} + +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0) \ || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0) \ || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0) \ || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0) \ @@ -137,7 +149,7 @@ void wrapper_vmalloc_sync_mappings(void) return vmalloc_sync_mappings(); } -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */ +#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */ static inline void wrapper_vmalloc_sync_mappings(void) @@ -145,11 +157,11 @@ void wrapper_vmalloc_sync_mappings(void) return vmalloc_sync_all(); } -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */ +#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0)) */ -#endif +#endif /* CONFIG_KALLSYMS */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0)) static inline void *lttng_kvmalloc_node(unsigned long size, gfp_t flags, int node) { @@ -190,7 +202,7 @@ void lttng_kvfree(const void *addr) kvfree(addr); } -#else +#else /* >= LTTNG_KERNEL_VERSION(4,12,0) */ #include @@ -198,8 +210,8 @@ static inline void print_vmalloc_node_range_warning(void) { printk_once(KERN_WARNING "LTTng: __vmalloc_node_range symbol lookup failed.\n"); - printk_once(KERN_WARNING "Tracer performance will be degraded on NUMA systems.\n"); - printk_once(KERN_WARNING "Please rebuild your kernel with CONFIG_KALLSYMS enabled.\n"); + printk_once(KERN_WARNING "LTTng: Tracer performance will be degraded on NUMA systems.\n"); + printk_once(KERN_WARNING "LTTng: Please rebuild your kernel with CONFIG_KALLSYMS enabled.\n"); } /* @@ -325,6 +337,6 @@ void lttng_kvfree(const void *addr) kfree(addr); } } -#endif +#endif /* >= LTTNG_KERNEL_VERSION(4,12,0) */ #endif /* _LTTNG_WRAPPER_VMALLOC_H */