[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:08:06 UTC 2018


Merged into 2.9, 2.10, master. I will leave a few days for everyone to
try it out before I do stable releases anyway.

Thanks,

Mathieu

----- On Jan 23, 2018, at 5:02 PM, Mathieu Desnoyers mathieu.desnoyers at efficios.com wrote:

> 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

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list