All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH] performing test on loop device if noatime or relatime specified
@ 2015-05-04  6:34 Han Pingtian
  2015-05-04 11:53 ` Cyril Hrubis
  0 siblings, 1 reply; 12+ messages in thread
From: Han Pingtian @ 2015-05-04  6:34 UTC (permalink / raw)
  To: ltp-list

Hi,

The noatime test of open12 fails on a distribution which doesn't
use tmpfs for /tmp. I have composed a patch to fix it. Please have a
look, thanks.

After 2.6.30, kernel specifies relatime option by default. If so then
try to mount a loop device using strictatime option to do the noatime
test.

Signed-off-by: Han Pingtian <hanpt@linux.vnet.ibm.com>
---
 testcases/kernel/syscalls/open/open12.c | 41 +++++++++++++++++++++++++++++----
 1 file changed, 37 insertions(+), 4 deletions(-)

diff --git a/testcases/kernel/syscalls/open/open12.c b/testcases/kernel/syscalls/open/open12.c
index 54ddfe0..f9be35b 100644
--- a/testcases/kernel/syscalls/open/open12.c
+++ b/testcases/kernel/syscalls/open/open12.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/mount.h>
 #include <unistd.h>
 #include <mntent.h>
 #include <errno.h>
@@ -34,8 +35,16 @@
 #define TEST_FILE	"test_file"
 #define LARGE_FILE	"large_file"
 
+#define DIR_MODE 0755
+#define MNTPOINT "mntpoint"
+
 char *TCID = "open12";
 
+static const char *device;
+static const char *fs_type;
+static unsigned int mount_flag = 0;
+static unsigned int cd_flag = 0;
+
 static void setup(void);
 static void cleanup(void);
 static void test_append(void);
@@ -114,10 +123,21 @@ static void test_noatime(void)
 	}
 
 	if (tst_path_has_mnt_flags(cleanup, NULL, flags)) {
-		tst_resm(TCONF,
-			 "test O_NOATIME flag for open needs filesystems which "
-			 "is mounted without noatime and relatime");
-		return;
+
+		fs_type = tst_dev_fs_type();
+		device = tst_acquire_device(cleanup);
+
+		if (!device)
+			tst_brkm(TCONF, cleanup, "Failed to obtain block device");
+
+		tst_mkfs(cleanup, device, fs_type, NULL);
+
+		SAFE_MKDIR(cleanup, MNTPOINT, DIR_MODE);
+		SAFE_MOUNT(cleanup, device, MNTPOINT, fs_type, MS_STRICTATIME, NULL);
+		mount_flag = 1;
+		SAFE_FILE_PRINTF(cleanup, MNTPOINT"/"TEST_FILE, TEST_FILE);
+		SAFE_CHDIR(cleanup, MNTPOINT);
+		cd_flag = 1;
 	}
 
 	SAFE_STAT(cleanup, TEST_FILE, &old_stat);
@@ -221,5 +241,18 @@ static void test_largefile(void)
 
 static void cleanup(void)
 {
+	if (cd_flag) {
+		char *tmp_dir = tst_get_tmpdir();
+		SAFE_CHDIR(NULL, tmp_dir);
+		free(tmp_dir);
+	}
+
+	if (mount_flag && tst_umount(MNTPOINT) == -1) {
+		tst_brkm(TBROK | TERRNO, NULL, "umount(2) failed");
+	}
+
+	if (device)
+		tst_release_device(NULL, device);
+
 	tst_rmdir();
 }
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-04  6:34 [LTP] [PATCH] performing test on loop device if noatime or relatime specified Han Pingtian
@ 2015-05-04 11:53 ` Cyril Hrubis
  2015-05-06 13:55   ` Han Pingtian
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-04 11:53 UTC (permalink / raw)
  To: ltp-list

Hi!
> diff --git a/testcases/kernel/syscalls/open/open12.c b/testcases/kernel/syscalls/open/open12.c
> index 54ddfe0..f9be35b 100644
> --- a/testcases/kernel/syscalls/open/open12.c
> +++ b/testcases/kernel/syscalls/open/open12.c
> @@ -24,6 +24,7 @@
>  #include <stdio.h>
>  #include <sys/types.h>
>  #include <sys/wait.h>
> +#include <sys/mount.h>
>  #include <unistd.h>
>  #include <mntent.h>
>  #include <errno.h>
> @@ -34,8 +35,16 @@
>  #define TEST_FILE	"test_file"
>  #define LARGE_FILE	"large_file"
>  
> +#define DIR_MODE 0755
> +#define MNTPOINT "mntpoint"
> +
>  char *TCID = "open12";
>  
> +static const char *device;
> +static const char *fs_type;
> +static unsigned int mount_flag = 0;
> +static unsigned int cd_flag = 0;
> +
>  static void setup(void);
>  static void cleanup(void);
>  static void test_append(void);
> @@ -114,10 +123,21 @@ static void test_noatime(void)
>  	}
>  
>  	if (tst_path_has_mnt_flags(cleanup, NULL, flags)) {
> -		tst_resm(TCONF,
> -			 "test O_NOATIME flag for open needs filesystems which "
> -			 "is mounted without noatime and relatime");
> -		return;
> +
> +		fs_type = tst_dev_fs_type();
> +		device = tst_acquire_device(cleanup);
> +
> +		if (!device)
> +			tst_brkm(TCONF, cleanup, "Failed to obtain block device");
> +
> +		tst_mkfs(cleanup, device, fs_type, NULL);
> +
> +		SAFE_MKDIR(cleanup, MNTPOINT, DIR_MODE);

What about creating a test directory in test temporary directory
unconditionally and change the TEST_FILE to point to a file in it? That
way we can just mount the loop device over the directory if needed and
avoid the ugly chdir here and in the cleanup.

> +		SAFE_MOUNT(cleanup, device, MNTPOINT, fs_type, MS_STRICTATIME, NULL);
> +		mount_flag = 1;
> +		SAFE_FILE_PRINTF(cleanup, MNTPOINT"/"TEST_FILE, TEST_FILE);
> +		SAFE_CHDIR(cleanup, MNTPOINT);
> +		cd_flag = 1;
>  	}
>  
>  	SAFE_STAT(cleanup, TEST_FILE, &old_stat);
> @@ -221,5 +241,18 @@ static void test_largefile(void)
>  
>  static void cleanup(void)
>  {
> +	if (cd_flag) {
> +		char *tmp_dir = tst_get_tmpdir();
> +		SAFE_CHDIR(NULL, tmp_dir);
> +		free(tmp_dir);
> +	}
> +
> +	if (mount_flag && tst_umount(MNTPOINT) == -1) {
> +		tst_brkm(TBROK | TERRNO, NULL, "umount(2) failed");

This should rather be tst_resm(TWARN | TERRNO, ...) so that we at least
attempt to continue the cleanup.

> +	}
> +
> +	if (device)
> +		tst_release_device(NULL, device);
> +
>  	tst_rmdir();

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-04 11:53 ` Cyril Hrubis
@ 2015-05-06 13:55   ` Han Pingtian
  2015-05-07 12:48     ` Cyril Hrubis
  2015-05-12 12:50     ` Cui Bixuan
  0 siblings, 2 replies; 12+ messages in thread
From: Han Pingtian @ 2015-05-06 13:55 UTC (permalink / raw)
  To: ltp-list

On Mon, May 04, 2015 at 01:53:26PM +0200, Cyril Hrubis wrote:
> What about creating a test directory in test temporary directory
> unconditionally and change the TEST_FILE to point to a file in it? That
> way we can just mount the loop device over the directory if needed and
> avoid the ugly chdir here and in the cleanup.
> 
> This should rather be tst_resm(TWARN | TERRNO, ...) so that we at least
> attempt to continue the cleanup.
> 

Thanks. I have revised the patch according to your suggestions.


From 1cdaff6a5658a544f0968ec3e336ffff191ebc30 Mon Sep 17 00:00:00 2001
From: Han Pingtian <hanpt@linux.vnet.ibm.com>
Date: Mon, 4 May 2015 13:44:51 +0800
Subject: [PATCH] performing test on loop device if noatime or relatime
 specified

After 2.6.30, kernel specifies relatime option by default. If so then
try to mount a loop device using strictatime option to do the noatime
test.

Signed-off-by: Han Pingtian <hanpt@linux.vnet.ibm.com>
---
 testcases/kernel/syscalls/open/open12.c | 40 ++++++++++++++++++++++++++++-----
 1 file changed, 35 insertions(+), 5 deletions(-)

diff --git a/testcases/kernel/syscalls/open/open12.c b/testcases/kernel/syscalls/open/open12.c
index 54ddfe0..fdc81bb 100644
--- a/testcases/kernel/syscalls/open/open12.c
+++ b/testcases/kernel/syscalls/open/open12.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/mount.h>
 #include <unistd.h>
 #include <mntent.h>
 #include <errno.h>
@@ -31,11 +32,17 @@
 #include "safe_macros.h"
 #include "lapi/fcntl.h"
 
-#define TEST_FILE	"test_file"
+#define MNTPOINT	"mntpoint"
+#define TEST_FILE	MNTPOINT"/test_file"
 #define LARGE_FILE	"large_file"
 
+#define DIR_MODE 0755
+
 char *TCID = "open12";
 
+static const char *device;
+static unsigned int mount_flag = 0;
+
 static void setup(void);
 static void cleanup(void);
 static void test_append(void);
@@ -75,6 +82,8 @@ static void setup(void)
 
 	tst_tmpdir();
 
+	SAFE_MKDIR(cleanup, MNTPOINT, DIR_MODE);
+
 	SAFE_FILE_PRINTF(cleanup, TEST_FILE, TEST_FILE);
 }
 
@@ -114,10 +123,18 @@ static void test_noatime(void)
 	}
 
 	if (tst_path_has_mnt_flags(cleanup, NULL, flags)) {
-		tst_resm(TCONF,
-			 "test O_NOATIME flag for open needs filesystems which "
-			 "is mounted without noatime and relatime");
-		return;
+
+		const char *fs_type = tst_dev_fs_type();
+		device = tst_acquire_device(cleanup);
+
+		if (!device)
+			tst_brkm(TCONF, cleanup, "Failed to obtain block device");
+
+		tst_mkfs(cleanup, device, fs_type, NULL);
+
+		SAFE_MOUNT(cleanup, device, MNTPOINT, fs_type, MS_STRICTATIME, NULL);
+		mount_flag = 1;
+		SAFE_FILE_PRINTF(cleanup, TEST_FILE, TEST_FILE);
 	}
 
 	SAFE_STAT(cleanup, TEST_FILE, &old_stat);
@@ -138,6 +155,13 @@ static void test_noatime(void)
 		tst_resm(TPASS, "test O_NOATIME for open success");
 	else
 		tst_resm(TFAIL, "test O_NOATIME for open failed");
+
+	if (mount_flag) {
+		mount_flag = 0;
+
+		if (tst_umount(MNTPOINT) == -1)
+			tst_brkm(TBROK | TERRNO, cleanup, "umount(2) failed");
+	}
 }
 
 static void test_cloexec(void)
@@ -221,5 +245,11 @@ static void test_largefile(void)
 
 static void cleanup(void)
 {
+	if (mount_flag && tst_umount(MNTPOINT) == -1)
+		tst_brkm(TWARN | TERRNO, NULL, "umount(2) failed");
+
+	if (device)
+		tst_release_device(NULL, device);
+
 	tst_rmdir();
 }
-- 
1.9.3


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-06 13:55   ` Han Pingtian
@ 2015-05-07 12:48     ` Cyril Hrubis
  2015-05-08  1:41       ` Han Pingtian
  2015-05-12 12:50     ` Cui Bixuan
  1 sibling, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-07 12:48 UTC (permalink / raw)
  To: ltp-list

Hi!
> Thanks. I have revised the patch according to your suggestions.

Pushed with following modifications, thanks.

* The device preparation must be done only once in setup()
  otherwise the testcase fails with -i 2

* The testcase was previously working fine when executed as
  non-root user, I've made some changes so that this continues
  to work as well

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-07 12:48     ` Cyril Hrubis
@ 2015-05-08  1:41       ` Han Pingtian
  0 siblings, 0 replies; 12+ messages in thread
From: Han Pingtian @ 2015-05-08  1:41 UTC (permalink / raw)
  To: ltp-list

On Thu, May 07, 2015 at 02:48:31PM +0200, Cyril Hrubis wrote:
> Hi!
> > Thanks. I have revised the patch according to your suggestions.
> 
> Pushed with following modifications, thanks.
> 
> * The device preparation must be done only once in setup()
>   otherwise the testcase fails with -i 2
> 
> * The testcase was previously working fine when executed as
>   non-root user, I've made some changes so that this continues
>   to work as well
> 
Thanks!


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-06 13:55   ` Han Pingtian
  2015-05-07 12:48     ` Cyril Hrubis
@ 2015-05-12 12:50     ` Cui Bixuan
  2015-05-12 13:48       ` Cyril Hrubis
  1 sibling, 1 reply; 12+ messages in thread
From: Cui Bixuan @ 2015-05-12 12:50 UTC (permalink / raw)
  To: ltp-list, hanpt


> +
> +		SAFE_MOUNT(cleanup, device, MNTPOINT, fs_type, MS_STRICTATIME, NULL);
> +		mount_flag = 1;
> +		SAFE_FILE_PRINTF(cleanup, TEST_FILE, TEST_FILE);
>  	}
Hi,
I run the LTP today:
.configure
make

then compile error:
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -W -g -O2 -Wold-style-definition -D_FORTIFY_SOURCE=2 -I/home/cuibixuan/home/git/ltp/ltp/testcases/kernel/include -I../../../../include -I../../../../include   -L../../../../lib  open12.c   -lltp -o open12
open12.c: In function ‘setup’:
open12.c:103: error: ‘MS_STRICTATIME’ undeclared (first use in this function)
open12.c:103: error: (Each undeclared identifier is reported only once
open12.c:103: error: for each function it appears in.)
make[4]: *** [open12] Error 1
make[4]: Leaving directory `/home/cuibixuan/home/git/ltp/ltp/testcases/kernel/syscalls/open'

Do 'man mount' and can not find 'MS_STRICTATIME'.

I get from man-pages of linux:
MS_STRICTATIME (since Linux 2.6.30)
              Always update the last access time (atime) when files on this
              filesystem are accessed.  (This was the default behavior
              before Linux 2.6.30.)  Specifying this flag overrides the
              effect of setting the MS_NOATIME and MS_RELATIME flags.

If not support 'MS_STRICTATIME'?
My system is SUSE11-SP2, linux 3.0.13, and gcc version 4.3.4.



------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
  2015-05-12 12:50     ` Cui Bixuan
@ 2015-05-12 13:48       ` Cyril Hrubis
       [not found]         ` <55530639.2070806@huawei.com>
       [not found]         ` <55530742.3030707@huawei.com>
  0 siblings, 2 replies; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-12 13:48 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list

Hi!
> then compile error:
> gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -W -g -O2 -Wold-style-definition -D_FORTIFY_SOURCE=2 -I/home/cuibixuan/home/git/ltp/ltp/testcases/kernel/include -I../../../../include -I../../../../include   -L../../../../lib  open12.c   -lltp -o open12
> open12.c: In function ?setup?:
> open12.c:103: error: ?MS_STRICTATIME? undeclared (first use in this function)
> open12.c:103: error: (Each undeclared identifier is reported only once
> open12.c:103: error: for each function it appears in.)
> make[4]: *** [open12] Error 1
> make[4]: Leaving directory `/home/cuibixuan/home/git/ltp/ltp/testcases/kernel/syscalls/open'
> 
> Do 'man mount' and can not find 'MS_STRICTATIME'.
> 
> I get from man-pages of linux:
> MS_STRICTATIME (since Linux 2.6.30)
>               Always update the last access time (atime) when files on this
>               filesystem are accessed.  (This was the default behavior
>               before Linux 2.6.30.)  Specifying this flag overrides the
>               effect of setting the MS_NOATIME and MS_RELATIME flags.
> 
> If not support 'MS_STRICTATIME'?
> My system is SUSE11-SP2, linux 3.0.13, and gcc version 4.3.4.

Solution to compilation failures is to add fallback definition into
ltp/include/lapi/mount.h (have a look at ltp/include/lapi/fcntl.h) and
include it in the testcase source. That would make the testcase compile,
but it may still fail when executed. To fix the execution we would need
to do a runtime check if the kernel supports this flag, I guess that we
would need to pass it only on newer kernels (we use tst_kvercmp() for
that).

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] performing test on loop device if noatime or relatime specified
       [not found]         ` <55530639.2070806@huawei.com>
@ 2015-05-13  8:14           ` Cyril Hrubis
       [not found]             ` <55559C6A.9090001@huawei.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-13  8:14 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list, zhuyanpeng, zhanyongming

Hi!
> >> then compile error:
> >> gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -W -g -O2 -Wold-style-definition -D_FORTIFY_SOURCE=2 -I/home/cuibixuan/home/git/ltp/ltp/testcases/kernel/include -I../../../../include -I../../../../include   -L../../../../lib  open12.c   -lltp -o open12
> >> open12.c: In function ?setup?:
> >> open12.c:103: error: ?MS_STRICTATIME? undeclared (first use in this function)
> >> open12.c:103: error: (Each undeclared identifier is reported only once
> >> open12.c:103: error: for each function it appears in.)
> >> make[4]: *** [open12] Error 1
> 
> Compile error 'MS_STRICTATIME undeclared' because my glibc version(2.11) is
> too old. I upgrade it then compile succeed.

That is not a solution. The solution is to create a fallback declaration
in LTP as I said.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] open/open12: Check the kernel version for 'MS_STRICTATIME'
       [not found]         ` <55530742.3030707@huawei.com>
@ 2015-05-13  9:03           ` Cyril Hrubis
       [not found]             ` <5555A746.4080006@huawei.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-13  9:03 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list, zhuyanpeng, zhanyongming

Hi!
> Call tst_kvercmp() to check the kernel version(newer than 2.6.30) before
> calling SAFE_MOUNT( MS_STRICTATIME ).
> 
> Signed-off-by: Cui Bixuan <cuibixuan@huawei.com>
> ---
>  testcases/kernel/syscalls/open/open12.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/open/open12.c b/testcases/kernel/syscalls/open/open12.c
> index e665368..9d315fb 100644
> --- a/testcases/kernel/syscalls/open/open12.c
> +++ b/testcases/kernel/syscalls/open/open12.c
> @@ -80,6 +80,13 @@ static void setup(void)
> 
>  	TEST_PAUSE;
> 
> +	if ((tst_kvercmp(2, 6, 30)) < 0) {
> +                tst_resm(TCONF,
> +                         "MS_STRICTATIME flags for mount(2) needs kernel 2.6.30 "
> +                         "or higher");
> +                return;
> +        }

This is not right place to do it. The flag is used only when we need to
mount the loop device so the check should be done only if we are about
to acquire the device. And we should set the skip_noatime flag there as
well.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] open/open12: Check the kernel version for 'MS_STRICTATIME'
       [not found]             ` <5555A746.4080006@huawei.com>
@ 2015-05-18 11:52               ` Cyril Hrubis
       [not found]                 ` <5559DDD9.4090807@huawei.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-18 11:52 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list, zhuyanpeng, zhanyongming

Hi!
> > This is not right place to do it. The flag is used only when we need to
> > mount the loop device so the check should be done only if we are about
> > to acquire the device. And we should set the skip_noatime flag there as
> > well.
> > 
> Your opinion is to add the check after `if (tst_path_has_mnt_flags(cleanup, NULL, mount_flags))`
> and then set the skip_noatime flag to 1 ?

Yes, because there is no need to skip the test if we are not even going
to mount the loop device.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH] open/open12: compile error
       [not found]             ` <55559C6A.9090001@huawei.com>
@ 2015-05-18 11:56               ` Cyril Hrubis
  0 siblings, 0 replies; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-18 11:56 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list, zhuyanpeng, zhanyongming

Hi!
> The 'MS_STRICTATIME' flag is not defined in old kernel.Now add
                                                  ^
						  libc

The system headers are supplied by glibc.

> it into include/lapi/mount.h and include it in testcase source.
> 
> Signed-off-by: Cui Bixuan <cuibixuan@huawei.com>
> ---
> Cat /usr/include/x86_64-linux-gnu/sys/mount.h in Ubuntu14 and find
> 'MS_STRICTATIME' flag:
> MS_STRICTATIME = 1 << 24,     /* Always perform atime updates.  */
> 
> So add it into include/lapi/mount.h
> And thank you for your advice,My idea is wrong.
> 
>  include/lapi/mount.h                    |   26 ++++++++++++++++++++++++++
>  testcases/kernel/syscalls/open/open12.c |    1 +
>  2 files changed, 27 insertions(+), 0 deletions(-)
>  create mode 100644 include/lapi/mount.h
> 
> diff --git a/include/lapi/mount.h b/include/lapi/mount.h
> new file mode 100644
> index 0000000..c71a638
> --- /dev/null
> +++ b/include/lapi/mount.h
> @@ -0,0 +1,26 @@
> +/*
> + * Copyright (c) 2014 Cyril Hrubis <chrubis@suse.cz>

              ^
	      Should be your name and current year. :)

> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it would be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write the Free Software Foundation,
> + * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> + */
> +
> +#ifndef __MOUNT_H__
> +#define __MOUNT_H__
> +
> +#ifndef MS_STRICTATIME
> +#define MS_STRICTATIME  1 << 24
> +#endif
> +
> +#endif /* __MOUNT_H__ */
> diff --git a/testcases/kernel/syscalls/open/open12.c b/testcases/kernel/syscalls/open/open12.c
> index e665368..af3fab3 100644
> --- a/testcases/kernel/syscalls/open/open12.c
> +++ b/testcases/kernel/syscalls/open/open12.c
> @@ -31,6 +31,7 @@
>  #include "test.h"
>  #include "safe_macros.h"
>  #include "lapi/fcntl.h"
> +#include "lapi/mount.h"
> 
>  #define MNTPOINT	"mntpoint"
>  #define TEST_FILE	MNTPOINT"/test_file"
> -- 
> 1.6.0.2

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [LTP] [PATCH 2/2 v2] open/open12: Check the kernel version for 'MS_STRICTATIME'
       [not found]                 ` <5559DDD9.4090807@huawei.com>
@ 2015-05-27 14:20                   ` Cyril Hrubis
  0 siblings, 0 replies; 12+ messages in thread
From: Cyril Hrubis @ 2015-05-27 14:20 UTC (permalink / raw)
  To: Cui Bixuan; +Cc: ltp-list, zhuyanpeng, zhanyongming

Hi!
Both patches pushed with a minor commit message formatting change,
thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-05-27 14:21 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-04  6:34 [LTP] [PATCH] performing test on loop device if noatime or relatime specified Han Pingtian
2015-05-04 11:53 ` Cyril Hrubis
2015-05-06 13:55   ` Han Pingtian
2015-05-07 12:48     ` Cyril Hrubis
2015-05-08  1:41       ` Han Pingtian
2015-05-12 12:50     ` Cui Bixuan
2015-05-12 13:48       ` Cyril Hrubis
     [not found]         ` <55530639.2070806@huawei.com>
2015-05-13  8:14           ` Cyril Hrubis
     [not found]             ` <55559C6A.9090001@huawei.com>
2015-05-18 11:56               ` [LTP] [PATCH] open/open12: compile error Cyril Hrubis
     [not found]         ` <55530742.3030707@huawei.com>
2015-05-13  9:03           ` [LTP] [PATCH] open/open12: Check the kernel version for 'MS_STRICTATIME' Cyril Hrubis
     [not found]             ` <5555A746.4080006@huawei.com>
2015-05-18 11:52               ` Cyril Hrubis
     [not found]                 ` <5559DDD9.4090807@huawei.com>
2015-05-27 14:20                   ` [LTP] [PATCH 2/2 v2] " Cyril Hrubis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.