[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