diff options
author | Jon Medhurst <tixy@linaro.org> | 2014-04-10 09:02:02 +0100 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2014-04-10 12:11:17 +0100 |
commit | 15ce78dafc08b1c5c3ec8f42070ae37160b5154c (patch) | |
tree | cdb25c6758ac3fe5ac6f9e151642a4779e2fc742 /drivers/gator/gator_events_meminfo.c | |
parent | 34d9769988397a1edf93ad1966c167591ab29e79 (diff) |
gator: Version 5.18
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Diffstat (limited to 'drivers/gator/gator_events_meminfo.c')
-rw-r--r-- | drivers/gator/gator_events_meminfo.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/drivers/gator/gator_events_meminfo.c b/drivers/gator/gator_events_meminfo.c index 451290d9af17..c633dfdce306 100644 --- a/drivers/gator/gator_events_meminfo.c +++ b/drivers/gator/gator_events_meminfo.c @@ -1,5 +1,5 @@ /** - * Copyright (C) ARM Limited 2010-2013. All rights reserved. + * Copyright (C) ARM Limited 2010-2014. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -274,6 +274,28 @@ static int gator_events_meminfo_read(long long **buffer) return meminfo_length; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0) + +static inline unsigned long gator_get_mm_counter(struct mm_struct *mm, int member) +{ +#ifdef SPLIT_RSS_COUNTING + long val = atomic_long_read(&mm->rss_stat.count[member]); + if (val < 0) + val = 0; + return (unsigned long)val; +#else +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0) + return mm->rss_stat.count[member]; +#else + return atomic_long_read(&mm->rss_stat.count[member]); +#endif +#endif +} + +#define get_mm_counter(mm, member) gator_get_mm_counter(mm, member) + +#endif + static int gator_events_meminfo_read_proc(long long **buffer, struct task_struct *task) { struct mm_struct *mm; @@ -302,7 +324,7 @@ static int gator_events_meminfo_read_proc(long long **buffer, struct task_struct // Derived from task_statm in fs/proc/task_mmu.c if (meminfo_enabled[MEMINFO_MEMUSED] || proc_enabled[PROC_SHARE]) { share = get_mm_counter(mm, -#if LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 32) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) file_rss #else MM_FILEPAGES @@ -338,7 +360,7 @@ static int gator_events_meminfo_read_proc(long long **buffer, struct task_struct if (meminfo_enabled[MEMINFO_MEMUSED]) { value = share + get_mm_counter(mm, -#if LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 32) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) anon_rss #else MM_ANONPAGES |