public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH v3 0/2] swap{on,off} fixes for page size > 4KB
@ 2024-04-25 21:10 Petr Vorel
  2024-04-25 21:10 ` [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros Petr Vorel
  2024-04-25 21:10 ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE() Petr Vorel
  0 siblings, 2 replies; 6+ messages in thread
From: Petr Vorel @ 2024-04-25 21:10 UTC (permalink / raw)
  To: ltp

Changes v2->v3:
* s/MAKE_MINIMAL_SWAPFILE/MAKE_SMALL_SWAPFILE/

Petr Vorel (2):
  libswap: Add {SAFE_,}MAKE_SMALL_SWAPFILE() macros
  libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE()

 include/libswap.h                             | 18 ++++++++++++++++++
 libs/libltpswap/libswap.c                     |  2 +-
 testcases/kernel/syscalls/swapoff/swapoff02.c |  2 +-
 testcases/kernel/syscalls/swapon/swapon02.c   |  4 ++--
 testcases/kernel/syscalls/swapon/swapon03.c   |  4 ++--
 5 files changed, 24 insertions(+), 6 deletions(-)

-- 
2.43.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros
  2024-04-25 21:10 [LTP] [PATCH v3 0/2] swap{on,off} fixes for page size > 4KB Petr Vorel
@ 2024-04-25 21:10 ` Petr Vorel
  2024-04-26  2:31   ` Li Wang
  2024-04-25 21:10 ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE() Petr Vorel
  1 sibling, 1 reply; 6+ messages in thread
From: Petr Vorel @ 2024-04-25 21:10 UTC (permalink / raw)
  To: ltp

65536 bytes triggered warning on systems with 64 kb page size (e.g. on
aarch64 with CONFIG_ARM64_64K_PAGES=y or on ppc64le with
CONFIG_PAGE_SIZE_64KB=y):

    TWARN: Swapfile size is less than the system page size. Using page size
    (65536 bytes) instead of block size (4096 bytes).

1 MB should be ok for most of the systems.

Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 include/libswap.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/libswap.h b/include/libswap.h
index 87e32328e..f757073cc 100644
--- a/include/libswap.h
+++ b/include/libswap.h
@@ -23,6 +23,24 @@ int make_swapfile(const char *file, const int lineno,
 			const char *swapfile, unsigned int num,
 			int safe, enum swapfile_method method);
 
+/** 65536 bytes is minimum for 64kb page size, let's use 1 MB */
+#define MINIMAL_SWAP_SIZE_MB 1
+
+/**
+ * Macro to create minimal swapfile.
+ */
+#define MAKE_SMALL_SWAPFILE(swapfile) \
+    make_swapfile(__FILE__, __LINE__, swapfile, MINIMAL_SWAP_SIZE_MB, 0, \
+		  SWAPFILE_BY_SIZE)
+
+/**
+ * Macro to create minimal swapfile.
+ * Includes safety checks to handle potential errors.
+ */
+#define SAFE_MAKE_SMALL_SWAPFILE(swapfile) \
+    make_swapfile(__FILE__, __LINE__, swapfile, MINIMAL_SWAP_SIZE_MB, 1, \
+		  SWAPFILE_BY_SIZE)
+
 /**
  * Macro to create swapfile size in megabytes (MB).
  */
-- 
2.43.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* [LTP] [PATCH v3 2/2] libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE()
  2024-04-25 21:10 [LTP] [PATCH v3 0/2] swap{on,off} fixes for page size > 4KB Petr Vorel
  2024-04-25 21:10 ` [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros Petr Vorel
@ 2024-04-25 21:10 ` Petr Vorel
  2024-04-26  2:32   ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_, }MAKE_MINIMAL_SWAPFILE() Li Wang
  1 sibling, 1 reply; 6+ messages in thread
From: Petr Vorel @ 2024-04-25 21:10 UTC (permalink / raw)
  To: ltp

This effectively increases the minimal used number of blocks to 256.

All {SAFE_,}MAKE_SWAPFILE_SIZE() calls which were creating swap used 10
blocks. While this is ok on 4kb page size, it's too low on systems with
64kb page size (e.g. on aarch64 with CONFIG_ARM64_64K_PAGES=y or on
ppc64le with CONFIG_PAGE_SIZE_64KB=y):

    TWARN: Swapfile size is less than the system page size. Using page size
    (65536 bytes) instead of block size (4096 bytes).

Obviously it would fail also on kernels with CONFIG_PAGE_SIZE_256KB.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 libs/libltpswap/libswap.c                     | 2 +-
 testcases/kernel/syscalls/swapoff/swapoff02.c | 2 +-
 testcases/kernel/syscalls/swapon/swapon02.c   | 4 ++--
 testcases/kernel/syscalls/swapon/swapon03.c   | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/libs/libltpswap/libswap.c b/libs/libltpswap/libswap.c
index aed76dfe2..eb066df71 100644
--- a/libs/libltpswap/libswap.c
+++ b/libs/libltpswap/libswap.c
@@ -192,7 +192,7 @@ int make_swapfile(const char *file, const int lineno,
 bool is_swap_supported(const char *filename)
 {
 	int i, sw_support = 0;
-	int ret = SAFE_MAKE_SWAPFILE_BLKS(filename, 10);
+	int ret = SAFE_MAKE_SMALL_SWAPFILE(filename);
 	int fi_contiguous = file_is_contiguous(filename);
 	long fs_type = tst_fs_type(filename);
 	const char *fstype = tst_fs_type_name(fs_type);
diff --git a/testcases/kernel/syscalls/swapoff/swapoff02.c b/testcases/kernel/syscalls/swapoff/swapoff02.c
index 5a15826e4..0ab8338c5 100644
--- a/testcases/kernel/syscalls/swapoff/swapoff02.c
+++ b/testcases/kernel/syscalls/swapoff/swapoff02.c
@@ -87,7 +87,7 @@ static void setup(void)
 	nobody_uid = nobody->pw_uid;
 
 	is_swap_supported(TEST_FILE);
-	SAFE_MAKE_SWAPFILE_BLKS(SWAP_FILE, 10);
+	SAFE_MAKE_SMALL_SWAPFILE(SWAP_FILE);
 }
 
 static struct tst_test test = {
diff --git a/testcases/kernel/syscalls/swapon/swapon02.c b/testcases/kernel/syscalls/swapon/swapon02.c
index e5e29b8e7..54796bdcc 100644
--- a/testcases/kernel/syscalls/swapon/swapon02.c
+++ b/testcases/kernel/syscalls/swapon/swapon02.c
@@ -50,8 +50,8 @@ static void setup(void)
 	is_swap_supported(TEST_FILE);
 
 	SAFE_TOUCH(NOTSWAP_FILE, 0777, NULL);
-	MAKE_SWAPFILE_BLKS(SWAP_FILE, 10);
-	MAKE_SWAPFILE_BLKS(USED_FILE, 10);
+	MAKE_SMALL_SWAPFILE(SWAP_FILE);
+	MAKE_SMALL_SWAPFILE(USED_FILE);
 
 	if (tst_syscall(__NR_swapon, USED_FILE, 0))
 		tst_res(TWARN | TERRNO, "swapon(alreadyused) failed");
diff --git a/testcases/kernel/syscalls/swapon/swapon03.c b/testcases/kernel/syscalls/swapon/swapon03.c
index 5295a6a73..ecce28bdc 100644
--- a/testcases/kernel/syscalls/swapon/swapon03.c
+++ b/testcases/kernel/syscalls/swapon/swapon03.c
@@ -49,7 +49,7 @@ static int setup_swap(void)
 
 			/* Create the swapfile */
 			snprintf(filename, sizeof(filename), "%s%02d", TEST_FILE, j + 2);
-			MAKE_SWAPFILE_BLKS(filename, 10);
+			MAKE_SMALL_SWAPFILE(filename);
 
 			/* turn on the swap file */
 			TST_EXP_PASS_SILENT(swapon(filename, 0));
@@ -62,7 +62,7 @@ static int setup_swap(void)
 		tst_brk(TFAIL, "Failed to setup swap files");
 
 	tst_res(TINFO, "Successfully created %d swap files", swapfiles);
-	MAKE_SWAPFILE_BLKS(TEST_FILE, 10);
+	MAKE_SMALL_SWAPFILE(TEST_FILE);
 
 	return 0;
 }
-- 
2.43.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros
  2024-04-25 21:10 ` [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros Petr Vorel
@ 2024-04-26  2:31   ` Li Wang
  2024-04-26  4:23     ` Petr Vorel
  0 siblings, 1 reply; 6+ messages in thread
From: Li Wang @ 2024-04-26  2:31 UTC (permalink / raw)
  To: Petr Vorel; +Cc: ltp

On Fri, Apr 26, 2024 at 5:26 AM Petr Vorel <pvorel@suse.cz> wrote:

> 65536 bytes triggered warning on systems with 64 kb page size (e.g. on
> aarch64 with CONFIG_ARM64_64K_PAGES=y or on ppc64le with
> CONFIG_PAGE_SIZE_64KB=y):
>
>     TWARN: Swapfile size is less than the system page size. Using page size
>     (65536 bytes) instead of block size (4096 bytes).
>
> 1 MB should be ok for most of the systems.
>
> Suggested-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
>

 Reviewed-by: Li Wang <liwang@redhat.com>

---
>  include/libswap.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/include/libswap.h b/include/libswap.h
> index 87e32328e..f757073cc 100644
> --- a/include/libswap.h
> +++ b/include/libswap.h
> @@ -23,6 +23,24 @@ int make_swapfile(const char *file, const int lineno,
>                         const char *swapfile, unsigned int num,
>                         int safe, enum swapfile_method method);
>
> +/** 65536 bytes is minimum for 64kb page size, let's use 1 MB */
> +#define MINIMAL_SWAP_SIZE_MB 1
> +
> +/**
> + * Macro to create minimal swapfile.
> + */
> +#define MAKE_SMALL_SWAPFILE(swapfile) \
> +    make_swapfile(__FILE__, __LINE__, swapfile, MINIMAL_SWAP_SIZE_MB, 0, \
> +                 SWAPFILE_BY_SIZE)
> +
> +/**
> + * Macro to create minimal swapfile.
> + * Includes safety checks to handle potential errors.
> + */
> +#define SAFE_MAKE_SMALL_SWAPFILE(swapfile) \
> +    make_swapfile(__FILE__, __LINE__, swapfile, MINIMAL_SWAP_SIZE_MB, 1, \
> +                 SWAPFILE_BY_SIZE)
> +
>  /**
>   * Macro to create swapfile size in megabytes (MB).
>   */
> --
> 2.43.0
>
>

-- 
Regards,
Li Wang

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [PATCH v3 2/2] libswap: Use {SAFE_, }MAKE_MINIMAL_SWAPFILE()
  2024-04-25 21:10 ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE() Petr Vorel
@ 2024-04-26  2:32   ` Li Wang
  0 siblings, 0 replies; 6+ messages in thread
From: Li Wang @ 2024-04-26  2:32 UTC (permalink / raw)
  To: Petr Vorel; +Cc: ltp

On Fri, Apr 26, 2024 at 5:11 AM Petr Vorel <pvorel@suse.cz> wrote:

> This effectively increases the minimal used number of blocks to 256.
>
> All {SAFE_,}MAKE_SWAPFILE_SIZE() calls which were creating swap used 10
> blocks. While this is ok on 4kb page size, it's too low on systems with
> 64kb page size (e.g. on aarch64 with CONFIG_ARM64_64K_PAGES=y or on
> ppc64le with CONFIG_PAGE_SIZE_64KB=y):
>
>     TWARN: Swapfile size is less than the system page size. Using page size
>     (65536 bytes) instead of block size (4096 bytes).
>
> Obviously it would fail also on kernels with CONFIG_PAGE_SIZE_256KB.
>
> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
>

 Reviewed-by: Li Wang <liwang@redhat.com>


> ---
>  libs/libltpswap/libswap.c                     | 2 +-
>  testcases/kernel/syscalls/swapoff/swapoff02.c | 2 +-
>  testcases/kernel/syscalls/swapon/swapon02.c   | 4 ++--
>  testcases/kernel/syscalls/swapon/swapon03.c   | 4 ++--
>  4 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/libs/libltpswap/libswap.c b/libs/libltpswap/libswap.c
> index aed76dfe2..eb066df71 100644
> --- a/libs/libltpswap/libswap.c
> +++ b/libs/libltpswap/libswap.c
> @@ -192,7 +192,7 @@ int make_swapfile(const char *file, const int lineno,
>  bool is_swap_supported(const char *filename)
>  {
>         int i, sw_support = 0;
> -       int ret = SAFE_MAKE_SWAPFILE_BLKS(filename, 10);
> +       int ret = SAFE_MAKE_SMALL_SWAPFILE(filename);
>         int fi_contiguous = file_is_contiguous(filename);
>         long fs_type = tst_fs_type(filename);
>         const char *fstype = tst_fs_type_name(fs_type);
> diff --git a/testcases/kernel/syscalls/swapoff/swapoff02.c
> b/testcases/kernel/syscalls/swapoff/swapoff02.c
> index 5a15826e4..0ab8338c5 100644
> --- a/testcases/kernel/syscalls/swapoff/swapoff02.c
> +++ b/testcases/kernel/syscalls/swapoff/swapoff02.c
> @@ -87,7 +87,7 @@ static void setup(void)
>         nobody_uid = nobody->pw_uid;
>
>         is_swap_supported(TEST_FILE);
> -       SAFE_MAKE_SWAPFILE_BLKS(SWAP_FILE, 10);
> +       SAFE_MAKE_SMALL_SWAPFILE(SWAP_FILE);
>  }
>
>  static struct tst_test test = {
> diff --git a/testcases/kernel/syscalls/swapon/swapon02.c
> b/testcases/kernel/syscalls/swapon/swapon02.c
> index e5e29b8e7..54796bdcc 100644
> --- a/testcases/kernel/syscalls/swapon/swapon02.c
> +++ b/testcases/kernel/syscalls/swapon/swapon02.c
> @@ -50,8 +50,8 @@ static void setup(void)
>         is_swap_supported(TEST_FILE);
>
>         SAFE_TOUCH(NOTSWAP_FILE, 0777, NULL);
> -       MAKE_SWAPFILE_BLKS(SWAP_FILE, 10);
> -       MAKE_SWAPFILE_BLKS(USED_FILE, 10);
> +       MAKE_SMALL_SWAPFILE(SWAP_FILE);
> +       MAKE_SMALL_SWAPFILE(USED_FILE);
>
>         if (tst_syscall(__NR_swapon, USED_FILE, 0))
>                 tst_res(TWARN | TERRNO, "swapon(alreadyused) failed");
> diff --git a/testcases/kernel/syscalls/swapon/swapon03.c
> b/testcases/kernel/syscalls/swapon/swapon03.c
> index 5295a6a73..ecce28bdc 100644
> --- a/testcases/kernel/syscalls/swapon/swapon03.c
> +++ b/testcases/kernel/syscalls/swapon/swapon03.c
> @@ -49,7 +49,7 @@ static int setup_swap(void)
>
>                         /* Create the swapfile */
>                         snprintf(filename, sizeof(filename), "%s%02d",
> TEST_FILE, j + 2);
> -                       MAKE_SWAPFILE_BLKS(filename, 10);
> +                       MAKE_SMALL_SWAPFILE(filename);
>
>                         /* turn on the swap file */
>                         TST_EXP_PASS_SILENT(swapon(filename, 0));
> @@ -62,7 +62,7 @@ static int setup_swap(void)
>                 tst_brk(TFAIL, "Failed to setup swap files");
>
>         tst_res(TINFO, "Successfully created %d swap files", swapfiles);
> -       MAKE_SWAPFILE_BLKS(TEST_FILE, 10);
> +       MAKE_SMALL_SWAPFILE(TEST_FILE);
>
>         return 0;
>  }
> --
> 2.43.0
>
>

-- 
Regards,
Li Wang

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

* Re: [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros
  2024-04-26  2:31   ` Li Wang
@ 2024-04-26  4:23     ` Petr Vorel
  0 siblings, 0 replies; 6+ messages in thread
From: Petr Vorel @ 2024-04-26  4:23 UTC (permalink / raw)
  To: Li Wang; +Cc: ltp

Hi Li, all,

...
>  Reviewed-by: Li Wang <liwang@redhat.com>

Merged, thank you for your review!

> ---
> >  include/libswap.h | 18 ++++++++++++++++++
...
> > +/** 65536 bytes is minimum for 64kb page size, let's use 1 MB */
> > +#define MINIMAL_SWAP_SIZE_MB 1
> > +
> > +/**
> > + * Macro to create minimal swapfile.
This could have been done better, e.g.:

@swapfile: swap file name.

But I kept it the same, just to fix broken test. Ands I'm going to send patch
implement it.

Kind regards,
Petr

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

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

end of thread, other threads:[~2024-04-26  4:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-25 21:10 [LTP] [PATCH v3 0/2] swap{on,off} fixes for page size > 4KB Petr Vorel
2024-04-25 21:10 ` [LTP] [PATCH v3 1/2] libswap: Add {SAFE_, }MAKE_SMALL_SWAPFILE() macros Petr Vorel
2024-04-26  2:31   ` Li Wang
2024-04-26  4:23     ` Petr Vorel
2024-04-25 21:10 ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_,}MAKE_MINIMAL_SWAPFILE() Petr Vorel
2024-04-26  2:32   ` [LTP] [PATCH v3 2/2] libswap: Use {SAFE_, }MAKE_MINIMAL_SWAPFILE() Li Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox