From 6284ae7ced3a8c6a4bee55b071d4de74d7400cad Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 23 Jan 2018 16:00:07 -0500 Subject: [PATCH] Fix: global_dirty_limit for kernel v4.2 and up global_dirty_limit was moved into wb_domain See upstream commit : commit dcc25ae76eb7b8ff883eaaab57e30e8f2f085be3 Author: Tejun Heo Date: Fri May 22 18:23:22 2015 -0400 writeback: move global_dirty_limit into wb_domain This patch is a part of the series to define wb_domain which represents a domain that wb's (bdi_writeback's) belong to and are measured against each other in. This will enable IO backpressure propagation for cgroup writeback. global_dirty_limit exists to regulate the global dirty threshold which is a property of the wb_domain. This patch moves hard_dirty_limit, dirty_lock, and update_time into wb_domain. This is pure reorganization and doesn't introduce any behavioral changes. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- wrapper/writeback.h | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/wrapper/writeback.h b/wrapper/writeback.h index cdcbd584..22b2c160 100644 --- a/wrapper/writeback.h +++ b/wrapper/writeback.h @@ -25,11 +25,33 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifdef CONFIG_KALLSYMS_ALL +#include +#ifdef CONFIG_KALLSYMS_ALL #include #include + + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) + +static struct wb_domain *global_wb_domain_sym; + +static inline +unsigned long wrapper_global_dirty_limit(void) +{ + if (!global_wb_domain_sym) + global_wb_domain_sym = + (void *) kallsyms_lookup_dataptr("global_wb_domain"); + if (global_wb_domain_sym) { + return global_wb_domain_sym->dirty_limit; + } else { + printk_once(KERN_WARNING "LTTng: global_wb_domain symbol lookup failed.\n"); + return 0; + } +} +#else + static unsigned long *global_dirty_limit_sym; static inline @@ -45,8 +67,9 @@ unsigned long wrapper_global_dirty_limit(void) return 0; } } +#endif -#else +#else /* CONFIG_KALLSYMS_ALL */ #include -- 2.34.1