Re: [LTP] [PATCH] Add an autoconf test for presence oftaskstats.freepages_count

Subrata Modak
2009-05-15T07:19:18Z

On Wed, 2009-05-13 at 01:07 +0200, Jiri Palecek wrote:
> Also, use it in getdelays.c to prevent compilation failures
>
> Hello,
>
> I've found that ltp didn't compile on Debian because of old kernel headers,
> which contain taskstats struct without some of the needed fields. This autoconf
> test detects it and disables the code that would otherwise break.
>
> Regards
> Jiri Palecek
>
> Signed-off-by: Jiri Palecek <jpalecek@web.de>

Same here:

ERROR: patch seems to be corrupt (line wrapped?)
#132: FILE: configure.ac:24:
diff --git a/include/config.h.default b/include/config.h.default
total: 1 errors, 0 warnings, 83 lines checked

and

patching file configure.ac
patch: **** malformed patch at line 132: diff --git
a/include/config.h.default b/include/config.h.default

Regards--
Subrata

> ---
> configure.ac | 1 +
> include/config.h.default | 2 +
> m4/ltp-taskstats.m4 | 38 +++++++++++++++++++++++
> testcases/kernel/controllers/cgroup/getdelays.c | 15 ++++++---
> 4 files changed, 51 insertions(+), 5 deletions(-)
> create mode 100644 m4/ltp-taskstats.m4
>
> diff --git a/configure.ac b/configure.ac
> index c534c97..9fc1696 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -20,5 +20,6 @@ LTP_CHECK_SYSCALL_MODIFY_LDT
> LTP_CHECK_SYSCALL_SIGNALFD
> LTP_CHECK_SELINUX
> LTP_CHECK_CRYPTO
> +LTP_CHECK_TASKSTATS
> AC_OUTPUT
> diff --git a/include/config.h.default b/include/config.h.default
> index 9125d85..b9a6731 100644
> --- a/include/config.h.default
> +++ b/include/config.h.default
> @@ -14,3 +14,5 @@
> /* ifaddrs.h is in glibc-2.3+ */
> #define HAVE_IFADDRS_H 1
> +
> +#define HAVE_TASKSTATS_FREEPAGES_COUNT 1
> diff --git a/m4/ltp-taskstats.m4 b/m4/ltp-taskstats.m4
> new file mode 100644
> index 0000000..54da783
> --- /dev/null
> +++ b/m4/ltp-taskstats.m4
> @@ -0,0 +1,38 @@
> +dnl
> +dnl Copyright (c) Jiri Palecek 2009
> +dnl
> +dnl This program is free software; you can redistribute it and/or modify
> +dnl it under the terms of the GNU General Public License as published by
> +dnl the Free Software Foundation; either version 2 of the License, or
> +dnl (at your option) any later version.
> +dnl
> +dnl This program is distributed in the hope that it will be useful,
> +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
> +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
> +dnl the GNU General Public License for more details.
> +dnl
> +dnl You should have received a copy of the GNU General Public License
> +dnl along with this program; if not, write to the Free Software
> +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> +dnl
> +
> +
> +AC_DEFUN([LTP_CHECK_TASKSTATS],
> +_LTP_CHECK_TASKSTATS_FREEPAGES
> +)dnl
> +
> +dnl _LTP_CHECK_TASKSTATS_FREEPAGES
> +dnl ----------------------------------------
> +dnl
> +dnl Check for taskstat.freepages_* members, introduced to the kernel
> +dnl in commit 016ae219 in July 2008
> +dnl
> +
> +AC_DEFUN([_LTP_CHECK_TASKSTATS_FREEPAGES],
> +[dnl
> +AC_CHECK_MEMBERS([struct taskstats.freepages_count],[],[],[dnl
> +#include <linux/types.h>
> +#include <linux/taskstats.h>
> +])
> +]dnl
> +)dnl
> diff --git a/testcases/kernel/controllers/cgroup/getdelays.c
> b/testcases/kernel/controllers/cgroup/getdelays.c
> index 13f7b3a..9fe2831 100644
> --- a/testcases/kernel/controllers/cgroup/getdelays.c
> +++ b/testcases/kernel/controllers/cgroup/getdelays.c
> @@ -199,8 +199,10 @@ void print_delayacct(struct taskstats *t)
> "SWAP %15s%15s\n"
> " %15llu%15llu\n"
> "RECLAIM %12s%15s\n"
> - " %15llu%15llu\n",
> - "count", "real total", "virtual total", "delay total",
> +#ifdef HAVE_TASKSTATS_FREEPAGES_COUNT
> + " %15llu%15llu\n"
> +#endif
> + , "count", "real total", "virtual total", "delay total",
> (unsigned long long)t->cpu_count,
> (unsigned long long)t->cpu_run_real_total,
> (unsigned long long)t->cpu_run_virtual_total,
> @@ -211,9 +213,12 @@ void print_delayacct(struct taskstats *t)
> "count", "delay total",
> (unsigned long long)t->swapin_count,
> (unsigned long long)t->swapin_delay_total,
> - "count", "delay total",
> - (unsigned long long)t->freepages_count,
> - (unsigned long long)t->freepages_delay_total);
> + "count", "delay total"
> +#ifdef HAVE_TASKSTATS_FREEPAGES_COUNT
> + , (unsigned long long)t->freepages_count,
> + (unsigned long long)t->freepages_delay_total
> +#endif
> + );
> }
> void task_context_switch_counts(struct taskstats *t)
> --
> 1.6.2
>
>
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> Ltp-list mailing list
> Ltp-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ltp-list

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.