X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=wrapper%2Fwriteback.h;h=22b2c1608a5e5df3495fbdcc863859364813cf76;hb=ea5123bab7fd19c596fb2b5ce03be1c1de317f4a;hp=3e8a9f561c57b7d0c94fa9acea8624773a5ef978;hpb=5a2f5e92e422d87a28581ba97e6b1789ff743bc6;p=lttng-modules.git diff --git a/wrapper/writeback.h b/wrapper/writeback.h index 3e8a9f56..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 @@ -41,12 +63,13 @@ unsigned long wrapper_global_dirty_limit(void) if (global_dirty_limit_sym) { return *global_dirty_limit_sym; } else { - printk(KERN_WARNING "LTTng: global_dirty_limit symbol lookup failed.\n"); + printk_once(KERN_WARNING "LTTng: global_dirty_limit symbol lookup failed.\n"); return 0; } } +#endif -#else +#else /* CONFIG_KALLSYMS_ALL */ #include