[lttng-dev] [PATCH lttng-modules] RFC: fix global_dirty_limit for kernel v4.2 and up
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Tue Jan 23 22:02:01 UTC 2018
It looks good. Why the "RFC" ? Do you want me to first pull it into
master for some CI testing, and only afterwards backport it ?
----- On Jan 23, 2018, at 4:00 PM, Michael Jeanson mjeanson at efficios.com wrote:
> global_dirty_limit was moved into wb_domain
>
> See upstream commit :
>
> commit dcc25ae76eb7b8ff883eaaab57e30e8f2f085be3
> Author: Tejun Heo <tj at kernel.org>
> 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 <mjeanson at efficios.com>
> ---
> wrapper/writeback.h | 27 +++++++++++++++++++++++++--
> 1 file changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/wrapper/writeback.h b/wrapper/writeback.h
> index cdcbd58..22b2c16 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 <lttng-kernel-version.h>
>
> +#ifdef CONFIG_KALLSYMS_ALL
> #include <linux/kallsyms.h>
> #include <wrapper/kallsyms.h>
>
> +
> +
> +#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 <linux/writeback.h>
>
> --
> 2.7.4
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list