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

Jiří Paleček
2009-05-25T01:14:52Z

[-- Attachment #1: Type: text/plain, Size: 7672 bytes --]

On Fri, 22 May 2009 08:52:16 +0200, Subrata Modak
<subrata@linux.vnet.ibm.com> wrote:

> Jiri,
>
> Any plans to resend this ?

Yes. Sorry, I oversaw this.

Regards
Jiri Palecek
>
> On Mon, 2009-05-18 at 17:29 +0530, Subrata Modak wrote:
>> On Fri, 2009-05-15 at 12:47 +0530, Subrata Modak wrote:
>> > 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
>> >
>>
>> How about resending this Patch as well ?
>>
>> Regards--
>> Subrata
>>
>> > 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.
>> > http://p.sf.net/sfu/businessobjects
>> > _______________________________________________
>> > 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.
>> http://p.sf.net/sfu/businessobjects
>> _______________________________________________
>> Ltp-list mailing list
>> Ltp-list@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ltp-list
>

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

[-- Attachment #2: 0016-Add-an-autoconf-test-for-presence-of-taskstats.freep.patch --]
[-- Type: application/octet-stream, Size: 4103 bytes --]

From ae85a155a86514804b571c0e184bfbee66cd0ee9 Mon Sep 17 00:00:00 2001
From: Jiri Palecek <jpalecek@web.de>
Date: Thu, 7 May 2009 13:48:06 +0200
Subject: [PATCH] Add an autoconf test for presence of taskstats.freepages_count
Cc: "ltp-list@lists.sourceforge.net" <ltp-list@lists.sourceforge.net>

Also, use it in getdelays.c to prevent compilation failures

Signed-off-by: Jiri Palecek <jpalecek@web.de>
---
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

[-- Attachment #3: Type: text/plain, Size: 432 bytes --]

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, &
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]