public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH 00/10] Extend kdevops-ci to support more workflows
@ 2025-06-15  9:58 Daniel Gomez
  2025-06-15  9:58 ` [PATCH 01/10] .ci: blktests: add 1 section only targets Daniel Gomez
                   ` (10 more replies)
  0 siblings, 11 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

This patch series includes Ansible fixes identified while running the
kdevops-ci GitHub Runner and testing the CI_WORKFLOW setup with the
following defconfigs: linux-mm-kpd, linux-modules-kpd, blktests, and
tmpfs.

As part of these fixes, support for tmpfs CI defconfigs is added. I'm
now running all of the above workflows daily, although archiving results
and dashboard are still on my TODO list.

This patch also introduces new Makefile cli parameters to:
  * Set selftest timeouts for module testing
  * Customize the kdevops repository cloned in guests

For a preliminary check of the kdevops-ci infrastructure, please go to
Actions repository section [1] and check the scheduled workflows and
runs (branch name: testing). Daily, latest linux-next tags are tested
on the above CI matrix strategy. And on Mondays, latest Linus latest tag
is tested.

[1]
https://github.com/linux-kdevops/kdevops-ci/actions

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
Daniel Gomez (10):
      .ci: blktests: add 1 section only targets
      defconfigs: add tmpfs support
      .ci: add tmpfs support
      defconfigs: blktests: add blktests_meta support
      gen_nodes: selftests: fix hosts names generation
      gen_hosts: selftests: fix hosts names generation
      fstests: fix ansible range type error
      selftests: kmod: add timeout makefile parameter cli support
      fstests: tmpfs: expunges: testing
      workflows: add support to change kdevops repo in guests via cli

 .ci/build-test/blktests_block                      |  1 +
 .ci/build-test/blktests_loop                       |  1 +
 .ci/build-test/blktests_meta                       |  1 +
 .ci/build-test/blktests_nbd                        |  1 +
 .ci/build-test/blktests_nvme                       |  1 +
 .ci/build-test/blktests_nvmemp                     |  1 +
 .ci/build-test/blktests_scsi                       |  1 +
 .ci/build-test/blktests_srp                        |  1 +
 .ci/build-test/blktests_zbd                        |  1 +
 .ci/build-test/tmpfs                               |  1 +
 .ci/build-test/tmpfs_default                       |  1 +
 .ci/build-test/tmpfs_huge                          |  1 +
 .ci/build-test/tmpfs_noswap                        |  1 +
 .ci/results/blktests_block                         |  1 +
 .ci/results/blktests_loop                          |  1 +
 .ci/results/blktests_meta                          |  1 +
 .ci/results/blktests_nbd                           |  1 +
 .ci/results/blktests_nvme                          |  1 +
 .ci/results/blktests_nvmemp                        |  1 +
 .ci/results/blktests_scsi                          |  1 +
 .ci/results/blktests_srp                           |  1 +
 .ci/results/blktests_zbd                           |  1 +
 .ci/results/tmpfs                                  | 10 ++++++
 .ci/results/tmpfs_default                          |  1 +
 .ci/results/tmpfs_huge                             |  1 +
 .ci/results/tmpfs_noswap                           |  1 +
 .ci/test/blktests_block                            |  1 +
 .ci/test/blktests_loop                             |  1 +
 .ci/test/blktests_meta                             |  1 +
 .ci/test/blktests_nbd                              |  1 +
 .ci/test/blktests_nvme                             |  1 +
 .ci/test/blktests_nvmemp                           |  1 +
 .ci/test/blktests_scsi                             |  1 +
 .ci/test/blktests_srp                              |  1 +
 .ci/test/blktests_zbd                              |  1 +
 .ci/test/tmpfs                                     |  1 +
 .ci/test/tmpfs_default                             |  1 +
 .ci/test/tmpfs_huge                                |  1 +
 .ci/test/tmpfs_noswap                              |  1 +
 defconfigs/blktests_block                          |  1 +
 defconfigs/blktests_loop                           |  1 +
 defconfigs/blktests_meta                           | 31 +++++++++++++++++++
 defconfigs/blktests_nbd                            |  1 +
 defconfigs/blktests_nvme                           |  1 +
 defconfigs/blktests_scsi                           |  1 +
 defconfigs/blktests_srp                            |  1 +
 defconfigs/blktests_zbd                            |  1 +
 defconfigs/tmpfs                                   | 36 ++++++++++++++++++++++
 defconfigs/tmpfs_default                           | 29 +++++++++++++++++
 defconfigs/tmpfs_huge                              | 32 +++++++++++++++++++
 defconfigs/tmpfs_noswap                            | 33 ++++++++++++++++++++
 kconfigs/workflows/Kconfig.shared                  | 23 +++++++++++---
 playbooks/roles/fstests/tasks/main.yml             |  2 +-
 playbooks/roles/gen_hosts/tasks/main.yml           | 15 ++++-----
 playbooks/roles/gen_nodes/tasks/main.yml           | 20 +++++++-----
 .../fstests/expunges/any/tmpfs/unassigned/all.txt  |  1 +
 workflows/selftests/Kconfig                        |  7 ++++-
 57 files changed, 263 insertions(+), 21 deletions(-)
---
base-commit: fd202e05b20b4e36e32a169a28061fbc5989d3d5
change-id: 20250615-ci-workflow-d3e2aa78b22d

Best regards,
-- 
Daniel Gomez <da.gomez@samsung.com>


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

* [PATCH 01/10] .ci: blktests: add 1 section only targets
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 02/10] defconfigs: add tmpfs support Daniel Gomez
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

This allows to configure the CI workflow to run using 1 section only
blktests configurations.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 .ci/build-test/blktests_block  | 1 +
 .ci/build-test/blktests_loop   | 1 +
 .ci/build-test/blktests_meta   | 1 +
 .ci/build-test/blktests_nbd    | 1 +
 .ci/build-test/blktests_nvme   | 1 +
 .ci/build-test/blktests_nvmemp | 1 +
 .ci/build-test/blktests_scsi   | 1 +
 .ci/build-test/blktests_srp    | 1 +
 .ci/build-test/blktests_zbd    | 1 +
 .ci/results/blktests_block     | 1 +
 .ci/results/blktests_loop      | 1 +
 .ci/results/blktests_meta      | 1 +
 .ci/results/blktests_nbd       | 1 +
 .ci/results/blktests_nvme      | 1 +
 .ci/results/blktests_nvmemp    | 1 +
 .ci/results/blktests_scsi      | 1 +
 .ci/results/blktests_srp       | 1 +
 .ci/results/blktests_zbd       | 1 +
 .ci/test/blktests_block        | 1 +
 .ci/test/blktests_loop         | 1 +
 .ci/test/blktests_meta         | 1 +
 .ci/test/blktests_nbd          | 1 +
 .ci/test/blktests_nvme         | 1 +
 .ci/test/blktests_nvmemp       | 1 +
 .ci/test/blktests_scsi         | 1 +
 .ci/test/blktests_srp          | 1 +
 .ci/test/blktests_zbd          | 1 +
 27 files changed, 27 insertions(+)

diff --git a/.ci/build-test/blktests_block b/.ci/build-test/blktests_block
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_block
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_loop b/.ci/build-test/blktests_loop
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_loop
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_meta b/.ci/build-test/blktests_meta
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_meta
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_nbd b/.ci/build-test/blktests_nbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_nbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_nvme b/.ci/build-test/blktests_nvme
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_nvme
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_nvmemp b/.ci/build-test/blktests_nvmemp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_nvmemp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_scsi b/.ci/build-test/blktests_scsi
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_scsi
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_srp b/.ci/build-test/blktests_srp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_srp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/build-test/blktests_zbd b/.ci/build-test/blktests_zbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/build-test/blktests_zbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_block b/.ci/results/blktests_block
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_block
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_loop b/.ci/results/blktests_loop
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_loop
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_meta b/.ci/results/blktests_meta
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_meta
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_nbd b/.ci/results/blktests_nbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_nbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_nvme b/.ci/results/blktests_nvme
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_nvme
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_nvmemp b/.ci/results/blktests_nvmemp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_nvmemp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_scsi b/.ci/results/blktests_scsi
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_scsi
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_srp b/.ci/results/blktests_srp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_srp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/results/blktests_zbd b/.ci/results/blktests_zbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/results/blktests_zbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_block b/.ci/test/blktests_block
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_block
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_loop b/.ci/test/blktests_loop
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_loop
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_meta b/.ci/test/blktests_meta
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_meta
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_nbd b/.ci/test/blktests_nbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_nbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_nvme b/.ci/test/blktests_nvme
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_nvme
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_nvmemp b/.ci/test/blktests_nvmemp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_nvmemp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_scsi b/.ci/test/blktests_scsi
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_scsi
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_srp b/.ci/test/blktests_srp
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_srp
@@ -0,0 +1 @@
+blktests
\ No newline at end of file
diff --git a/.ci/test/blktests_zbd b/.ci/test/blktests_zbd
new file mode 120000
index 0000000000000000000000000000000000000000..86d7fbaf676c857a9d775890a7fe715afd345acf
--- /dev/null
+++ b/.ci/test/blktests_zbd
@@ -0,0 +1 @@
+blktests
\ No newline at end of file

-- 
2.49.0


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

* [PATCH 02/10] defconfigs: add tmpfs support
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
  2025-06-15  9:58 ` [PATCH 01/10] .ci: blktests: add 1 section only targets Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 03/10] .ci: " Daniel Gomez
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Add tmpfs support. Include section defconfigs too but do not slit
sections in more for now.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 defconfigs/tmpfs         | 36 ++++++++++++++++++++++++++++++++++++
 defconfigs/tmpfs_default | 29 +++++++++++++++++++++++++++++
 defconfigs/tmpfs_huge    | 32 ++++++++++++++++++++++++++++++++
 defconfigs/tmpfs_noswap  | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 130 insertions(+)

diff --git a/defconfigs/tmpfs b/defconfigs/tmpfs
new file mode 100644
index 0000000000000000000000000000000000000000..9601417c386ba6624f16a0c7d4738c5e44748bd0
--- /dev/null
+++ b/defconfigs/tmpfs
@@ -0,0 +1,36 @@
+CONFIG_GUESTFS=y
+CONFIG_LIBVIRT=y
+
+CONFIG_WORKFLOWS=y
+CONFIG_WORKFLOW_LINUX_CUSTOM=y
+
+CONFIG_GUESTFS_BRINGUP_DEBUG_1=y
+
+CONFIG_BOOTLINUX=y
+CONFIG_BOOTLINUX_9P=y
+
+CONFIG_LIBVIRT_EXTRA_STORAGE_DRIVE_NVME=y
+
+CONFIG_WORKFLOWS_TESTS=y
+CONFIG_WORKFLOWS_LINUX_TESTS=y
+CONFIG_WORKFLOWS_DEDICATED_WORKFLOW=y
+CONFIG_KDEVOPS_WORKFLOW_DEDICATE_FSTESTS=y
+CONFIG_KDEVOPS_WORKFLOW_ENABLE_FSTESTS=y
+
+CONFIG_FSTESTS_TMPFS_ENABLE=y
+CONFIG_FSTESTS_TMPFS=y
+CONFIG_FSTESTS_FSTYP="tmpfs"
+
+CONFIG_FSTESTS_TMPFS_MANUAL_COVERAGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_DEFAULT=y
+CONFIG_FSTESTS_TMPFS_ENABLE_NOSWAP=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_NEVER=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_ALWAYS=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_WITHIN_SIZE=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_ADVISE=y
+CONFIG_FSTESTS_TMPFS_ENABLE_HUGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_ALWAYS=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_WITHIN_SIZE=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_ADVISE=y
+
+CONFIG_DEVCONFIG_ENABLE_SYSTEMD_JOURNAL_REMOTE=y
diff --git a/defconfigs/tmpfs_default b/defconfigs/tmpfs_default
new file mode 100644
index 0000000000000000000000000000000000000000..529a8286da562f5bbfc840459e7497119ef0674f
--- /dev/null
+++ b/defconfigs/tmpfs_default
@@ -0,0 +1,29 @@
+CONFIG_GUESTFS=y
+CONFIG_LIBVIRT=y
+
+CONFIG_WORKFLOWS=y
+CONFIG_WORKFLOW_LINUX_CUSTOM=y
+
+CONFIG_GUESTFS_BRINGUP_DEBUG_1=y
+
+CONFIG_BOOTLINUX=y
+CONFIG_BOOTLINUX_9P=y
+
+CONFIG_LIBVIRT_EXTRA_STORAGE_DRIVE_NVME=y
+
+CONFIG_WORKFLOWS_TESTS=y
+CONFIG_WORKFLOWS_LINUX_TESTS=y
+CONFIG_WORKFLOWS_DEDICATED_WORKFLOW=y
+CONFIG_KDEVOPS_WORKFLOW_DEDICATE_FSTESTS=y
+CONFIG_KDEVOPS_WORKFLOW_ENABLE_FSTESTS=y
+
+CONFIG_FSTESTS_TMPFS_ENABLE=y
+CONFIG_FSTESTS_TMPFS=y
+CONFIG_FSTESTS_FSTYP="tmpfs"
+
+CONFIG_FSTESTS_TMPFS_MANUAL_COVERAGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_DEFAULT=y
+CONFIG_FSTESTS_TMPFS_ENABLE_NOSWAP=n
+CONFIG_FSTESTS_TMPFS_ENABLE_HUGE=n
+
+CONFIG_DEVCONFIG_ENABLE_SYSTEMD_JOURNAL_REMOTE=y
diff --git a/defconfigs/tmpfs_huge b/defconfigs/tmpfs_huge
new file mode 100644
index 0000000000000000000000000000000000000000..b2806cf25c3ef6e372c66f5d4c61b6844edc41b5
--- /dev/null
+++ b/defconfigs/tmpfs_huge
@@ -0,0 +1,32 @@
+CONFIG_GUESTFS=y
+CONFIG_LIBVIRT=y
+
+CONFIG_WORKFLOWS=y
+CONFIG_WORKFLOW_LINUX_CUSTOM=y
+
+CONFIG_GUESTFS_BRINGUP_DEBUG_1=y
+
+CONFIG_BOOTLINUX=y
+CONFIG_BOOTLINUX_9P=y
+
+CONFIG_LIBVIRT_EXTRA_STORAGE_DRIVE_NVME=y
+
+CONFIG_WORKFLOWS_TESTS=y
+CONFIG_WORKFLOWS_LINUX_TESTS=y
+CONFIG_WORKFLOWS_DEDICATED_WORKFLOW=y
+CONFIG_KDEVOPS_WORKFLOW_DEDICATE_FSTESTS=y
+CONFIG_KDEVOPS_WORKFLOW_ENABLE_FSTESTS=y
+
+CONFIG_FSTESTS_TMPFS_ENABLE=y
+CONFIG_FSTESTS_TMPFS=y
+CONFIG_FSTESTS_FSTYP="tmpfs"
+
+CONFIG_FSTESTS_TMPFS_MANUAL_COVERAGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_DEFAULT=n
+CONFIG_FSTESTS_TMPFS_ENABLE_NOSWAP=n
+CONFIG_FSTESTS_TMPFS_ENABLE_HUGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_ALWAYS=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_WITHIN_SIZE=y
+CONFIG_FSTESTS_TMPFS_SECTION_HUGE_ADVISE=y
+
+CONFIG_DEVCONFIG_ENABLE_SYSTEMD_JOURNAL_REMOTE=y
diff --git a/defconfigs/tmpfs_noswap b/defconfigs/tmpfs_noswap
new file mode 100644
index 0000000000000000000000000000000000000000..be1ec3454c84499734adaf0a7ad8fac973691b75
--- /dev/null
+++ b/defconfigs/tmpfs_noswap
@@ -0,0 +1,33 @@
+CONFIG_GUESTFS=y
+CONFIG_LIBVIRT=y
+
+CONFIG_WORKFLOWS=y
+CONFIG_WORKFLOW_LINUX_CUSTOM=y
+
+CONFIG_GUESTFS_BRINGUP_DEBUG_1=y
+
+CONFIG_BOOTLINUX=y
+CONFIG_BOOTLINUX_9P=y
+
+CONFIG_LIBVIRT_EXTRA_STORAGE_DRIVE_NVME=y
+
+CONFIG_WORKFLOWS_TESTS=y
+CONFIG_WORKFLOWS_LINUX_TESTS=y
+CONFIG_WORKFLOWS_DEDICATED_WORKFLOW=y
+CONFIG_KDEVOPS_WORKFLOW_DEDICATE_FSTESTS=y
+CONFIG_KDEVOPS_WORKFLOW_ENABLE_FSTESTS=y
+
+CONFIG_FSTESTS_TMPFS_ENABLE=y
+CONFIG_FSTESTS_TMPFS=y
+CONFIG_FSTESTS_FSTYP="tmpfs"
+
+CONFIG_FSTESTS_TMPFS_MANUAL_COVERAGE=y
+CONFIG_FSTESTS_TMPFS_SECTION_DEFAULT=n
+CONFIG_FSTESTS_TMPFS_ENABLE_NOSWAP=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_NEVER=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_ALWAYS=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_WITHIN_SIZE=y
+CONFIG_FSTESTS_TMPFS_SECTION_NOSWAP_HUGE_ADVISE=y
+CONFIG_FSTESTS_TMPFS_ENABLE_HUGE=n
+
+CONFIG_DEVCONFIG_ENABLE_SYSTEMD_JOURNAL_REMOTE=y

-- 
2.49.0


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

* [PATCH 03/10] .ci: add tmpfs support
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
  2025-06-15  9:58 ` [PATCH 01/10] .ci: blktests: add 1 section only targets Daniel Gomez
  2025-06-15  9:58 ` [PATCH 02/10] defconfigs: add tmpfs support Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 04/10] defconfigs: blktests: add blktests_meta support Daniel Gomez
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Add tmpfs support for ci workflow.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 .ci/build-test/tmpfs         |  1 +
 .ci/build-test/tmpfs_default |  1 +
 .ci/build-test/tmpfs_huge    |  1 +
 .ci/build-test/tmpfs_noswap  |  1 +
 .ci/results/tmpfs            | 10 ++++++++++
 .ci/results/tmpfs_default    |  1 +
 .ci/results/tmpfs_huge       |  1 +
 .ci/results/tmpfs_noswap     |  1 +
 .ci/test/tmpfs               |  1 +
 .ci/test/tmpfs_default       |  1 +
 .ci/test/tmpfs_huge          |  1 +
 .ci/test/tmpfs_noswap        |  1 +
 12 files changed, 21 insertions(+)

diff --git a/.ci/build-test/tmpfs b/.ci/build-test/tmpfs
new file mode 100644
index 0000000000000000000000000000000000000000..5a65e4d608ac919a5930770e0d4bb2209e0acea7
--- /dev/null
+++ b/.ci/build-test/tmpfs
@@ -0,0 +1 @@
+make fstests
diff --git a/.ci/build-test/tmpfs_default b/.ci/build-test/tmpfs_default
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/build-test/tmpfs_default
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/build-test/tmpfs_huge b/.ci/build-test/tmpfs_huge
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/build-test/tmpfs_huge
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/build-test/tmpfs_noswap b/.ci/build-test/tmpfs_noswap
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/build-test/tmpfs_noswap
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/results/tmpfs b/.ci/results/tmpfs
new file mode 100644
index 0000000000000000000000000000000000000000..d82e8d1fb422082e4505c96cdfbdb6113376ff0f
--- /dev/null
+++ b/.ci/results/tmpfs
@@ -0,0 +1,10 @@
+workflows/fstests/results/
+guestfs/*/*.xml
+guestfs/*/*.log
+journal/*
+.config
+extra_vars.yaml
+linux/.config
+ci.log
+.kernel.ci.*
+crashes
diff --git a/.ci/results/tmpfs_default b/.ci/results/tmpfs_default
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/results/tmpfs_default
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/results/tmpfs_huge b/.ci/results/tmpfs_huge
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/results/tmpfs_huge
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/results/tmpfs_noswap b/.ci/results/tmpfs_noswap
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/results/tmpfs_noswap
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/test/tmpfs b/.ci/test/tmpfs
new file mode 100644
index 0000000000000000000000000000000000000000..9d3a7ee14ab11a977f29666d44d5d8d56a05a7ea
--- /dev/null
+++ b/.ci/test/tmpfs
@@ -0,0 +1 @@
+make fstests-baseline
diff --git a/.ci/test/tmpfs_default b/.ci/test/tmpfs_default
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/test/tmpfs_default
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/test/tmpfs_huge b/.ci/test/tmpfs_huge
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/test/tmpfs_huge
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file
diff --git a/.ci/test/tmpfs_noswap b/.ci/test/tmpfs_noswap
new file mode 120000
index 0000000000000000000000000000000000000000..11a52458e7acbc095b101f9a66d9e3a1fe62bb32
--- /dev/null
+++ b/.ci/test/tmpfs_noswap
@@ -0,0 +1 @@
+tmpfs
\ No newline at end of file

-- 
2.49.0


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

* [PATCH 04/10] defconfigs: blktests: add blktests_meta support
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (2 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 03/10] .ci: " Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 05/10] gen_nodes: selftests: fix hosts names generation Daniel Gomez
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Add blktests_meta and ensure all blktests defconfigs disable META
profile.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 defconfigs/blktests_block |  1 +
 defconfigs/blktests_loop  |  1 +
 defconfigs/blktests_meta  | 31 +++++++++++++++++++++++++++++++
 defconfigs/blktests_nbd   |  1 +
 defconfigs/blktests_nvme  |  1 +
 defconfigs/blktests_scsi  |  1 +
 defconfigs/blktests_srp   |  1 +
 defconfigs/blktests_zbd   |  1 +
 8 files changed, 38 insertions(+)

diff --git a/defconfigs/blktests_block b/defconfigs/blktests_block
index 2c182448b2ece2efeae6670dcedcde51a76a97c5..2720435fbba9af8d0b9c0570a10facbbb5f06763 100644
--- a/defconfigs/blktests_block
+++ b/defconfigs/blktests_block
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=y
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=n
diff --git a/defconfigs/blktests_loop b/defconfigs/blktests_loop
index eb2d5747796cb56cd403eeec3aa19c59aa1a7f22..b366d103dd3fe87027be8165d183bd28c7c97df5 100644
--- a/defconfigs/blktests_loop
+++ b/defconfigs/blktests_loop
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=y
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=n
diff --git a/defconfigs/blktests_meta b/defconfigs/blktests_meta
new file mode 100644
index 0000000000000000000000000000000000000000..64502fb7e52b9918730b4a8a43a2b047199321e9
--- /dev/null
+++ b/defconfigs/blktests_meta
@@ -0,0 +1,31 @@
+CONFIG_GUESTFS=y
+CONFIG_LIBVIRT=y
+
+CONFIG_WORKFLOWS=y
+CONFIG_WORKFLOW_LINUX_CUSTOM=y
+
+CONFIG_GUESTFS_BRINGUP_DEBUG_1=y
+
+CONFIG_BOOTLINUX=y
+CONFIG_BOOTLINUX_9P=y
+
+CONFIG_LIBVIRT_EXTRA_STORAGE_DRIVE_NVME=y
+
+CONFIG_WORKFLOWS_TESTS=y
+CONFIG_WORKFLOWS_LINUX_TESTS=y
+CONFIG_WORKFLOWS_DEDICATED_WORKFLOW=y
+CONFIG_KDEVOPS_WORKFLOW_DEDICATE_BLKTESTS=y
+CONFIG_KDEVOPS_WORKFLOW_ENABLE_BLKTESTS=y
+
+CONFIG_BLKTESTS_RESULTS_ALL=y
+CONFIG_BLKTESTS_MANUAL_COVERAGE=y
+CONFIG_BLKTESTS_SECTION_BLOCK=n
+CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=y
+CONFIG_BLKTESTS_SECTION_NBD=n
+CONFIG_BLKTESTS_SECTION_NVME=n
+CONFIG_BLKTESTS_SECTION_SCSI=n
+CONFIG_BLKTESTS_SECTION_SRP=n
+CONFIG_BLKTESTS_SECTION_ZBD=n
+
+CONFIG_DEVCONFIG_ENABLE_SYSTEMD_JOURNAL_REMOTE=y
diff --git a/defconfigs/blktests_nbd b/defconfigs/blktests_nbd
index 6544fcbe099ac5c9843656c03d51d781464fb867..fe958a72963d26d4d30abacf72e8b3cde93ba713 100644
--- a/defconfigs/blktests_nbd
+++ b/defconfigs/blktests_nbd
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=y
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=n
diff --git a/defconfigs/blktests_nvme b/defconfigs/blktests_nvme
index cb14c5bb4e34977951c8749477da290f54ed9deb..e504f18a83419aa0feb36e2e208e611b58ace7a9 100644
--- a/defconfigs/blktests_nvme
+++ b/defconfigs/blktests_nvme
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=y
 CONFIG_BLKTESTS_SECTION_SCSI=n
diff --git a/defconfigs/blktests_scsi b/defconfigs/blktests_scsi
index 12603bcf037212cf6108b484d9970c073766258f..d49e72893690eb4b386a2f6c1d34778e18aecef9 100644
--- a/defconfigs/blktests_scsi
+++ b/defconfigs/blktests_scsi
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=y
diff --git a/defconfigs/blktests_srp b/defconfigs/blktests_srp
index d4ad7be05e694268c2df4d176d0f263753d65382..fccf4f0b625ca6c460b96db08b25a95ebbe912aa 100644
--- a/defconfigs/blktests_srp
+++ b/defconfigs/blktests_srp
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=n
diff --git a/defconfigs/blktests_zbd b/defconfigs/blktests_zbd
index d29014d454e9c435357111dfd0e7710ebe82cfa4..b2cf9ff5bd1f58132e8e1044df0ad6b2d6f58faa 100644
--- a/defconfigs/blktests_zbd
+++ b/defconfigs/blktests_zbd
@@ -21,6 +21,7 @@ CONFIG_BLKTESTS_RESULTS_ALL=y
 CONFIG_BLKTESTS_MANUAL_COVERAGE=y
 CONFIG_BLKTESTS_SECTION_BLOCK=n
 CONFIG_BLKTESTS_SECTION_LOOP=n
+CONFIG_BLKTESTS_SECTION_META=n
 CONFIG_BLKTESTS_SECTION_NBD=n
 CONFIG_BLKTESTS_SECTION_NVME=n
 CONFIG_BLKTESTS_SECTION_SCSI=n

-- 
2.49.0


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

* [PATCH 05/10] gen_nodes: selftests: fix hosts names generation
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (3 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 04/10] defconfigs: blktests: add blktests_meta support Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 06/10] gen_hosts: " Daniel Gomez
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Fix hosts names variable expansion as in change 00c23b1 ("gen_nodes:
blktests: fix hosts names generation").

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 playbooks/roles/gen_nodes/tasks/main.yml | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/playbooks/roles/gen_nodes/tasks/main.yml b/playbooks/roles/gen_nodes/tasks/main.yml
index 5be8ca183bbd5dcfa9459948226f7d185c91ab08..ef68742f9166617a8523502420b9086d20c53f99 100644
--- a/playbooks/roles/gen_nodes/tasks/main.yml
+++ b/playbooks/roles/gen_nodes/tasks/main.yml
@@ -365,13 +365,19 @@
     - ansible_nodes_template.stat.exists
 
 - name: Infer enabled selftests test section types
-  vars:
-    kdevops_config_data: "{{ lookup('file', topdir_path + '/.config') }}"
-    config_val: "CONFIG_SELFTESTS_SECTION_"
-    config_selftests_test_types: "{{ kdevops_config_data | regex_findall('^' + config_val + '(.*)=y$', multiline=True) }}"
-    config_selftests_test_type_names: "{{ config_selftests_test_types | lower }}"
-  set_fact:
-    selftests_enabled_test_types: "{{ [kdevops_host_prefix + '-'] | product(config_selftests_test_type_names) | map('join') | list }}"
+  ansible.builtin.set_fact:
+    selftests_enabled_test_types: >-
+      {{
+        [kdevops_host_prefix + '-']
+        | product(
+            lookup('file', topdir_path + '/.config')
+            | regex_findall('^CONFIG_SELFTESTS_SECTION_(.*)=y$', multiline=True)
+            | map('lower')
+            | list
+          )
+        | map('join')
+        | list
+      }}
   when:
     - kdevops_workflows_dedicated_workflow
     - kdevops_workflow_enable_selftests

-- 
2.49.0


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

* [PATCH 06/10] gen_hosts: selftests: fix hosts names generation
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (4 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 05/10] gen_nodes: selftests: fix hosts names generation Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 07/10] fstests: fix ansible range type error Daniel Gomez
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Fix hosts names variable expansion as in change 2ad69dc ("gen_hosts:
blktests: fix hosts names generation").

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 playbooks/roles/gen_hosts/tasks/main.yml | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/playbooks/roles/gen_hosts/tasks/main.yml b/playbooks/roles/gen_hosts/tasks/main.yml
index b7fb7a930cdd64db93fbf1fa9202b463a147f854..5f5234591acb878a77c7a0e99fa546d4395e91f1 100644
--- a/playbooks/roles/gen_hosts/tasks/main.yml
+++ b/playbooks/roles/gen_hosts/tasks/main.yml
@@ -245,13 +245,14 @@
     - ansible_hosts_template.stat.exists
 
 - name: Infer enabled selftests test section types
-  vars:
-    kdevops_config_data: "{{ lookup('file', topdir_path + '/.config') }}"
-    config_val: "CONFIG_SELFTESTS_SECTION_"
-    config_selftests_test_types: "{{ kdevops_config_data | regex_findall('^' + config_val + '(.*)=y$', multiline=True) }}"
-    config_selftests_test_type_names: "{{ config_selftests_test_types | lower }}"
-  set_fact:
-    selftests_enabled_test_types: "{{ config_selftests_test_type_names }}"
+  ansible.builtin.set_fact:
+    selftests_enabled_test_types: >-
+     {{
+       lookup('file', topdir_path + '/.config')
+       | regex_findall('^CONFIG_SELFTESTS_SECTION_(.*)=y$', multiline=True)
+       | map('lower')
+       | list
+     }}
   when:
     - kdevops_workflows_dedicated_workflow
     - kdevops_workflow_enable_selftests

-- 
2.49.0


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

* [PATCH 07/10] fstests: fix ansible range type error
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (5 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 06/10] gen_hosts: " Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 08/10] selftests: kmod: add timeout makefile parameter cli support Daniel Gomez
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Create a list for the loop module fixes error:

TASK [fstests : Create 12 logical partitions on sigle NVMe drive]
[ERROR]: Error rendering template: Type 'range' is unsupported for
variable storage.

Error rendering template.
Origin:
/scratch/gh/actions-runner/_work/kdevops-ci/kdevops-ci/tmpfs_default/kde
vops/playbooks/roles/fstests/tasks/main.yml:617:9

615     part_start: "{{ ((item - 5) * test_partsize ) + 1 }}GiB"
616     part_end:   "{{ ((item - 4) * test_partsize ) }}GiB"
617   loop: '{{ range(5, 17) }}'
            ^ column 9

<<< caused by >>>

Type 'range' is unsupported for variable storage. Origin: <unknown>

range(5, 17)

task path:
/scratch/gh/actions-runner/_work/kdevops-ci/kdevops-ci/tmpfs_default/kde
vops/playbooks/roles/fstests/tasks/main.yml:602
fatal: [c3223240f4b9-tmpfs-default]: FAILED! => {}

MSG:

Error rendering template: Type 'range' is unsupported for variable
storage.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 playbooks/roles/fstests/tasks/main.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playbooks/roles/fstests/tasks/main.yml b/playbooks/roles/fstests/tasks/main.yml
index eab35fba026c8f112f7d4b28fe56e1be5b7159ad..2665f693af3c9cc343a8c140df782c83302e1781 100644
--- a/playbooks/roles/fstests/tasks/main.yml
+++ b/playbooks/roles/fstests/tasks/main.yml
@@ -614,7 +614,7 @@
     part_type: "logical"
     part_start: "{{ ((item - 5) * test_partsize ) + 1 }}GiB"
     part_end:   "{{ ((item - 4) * test_partsize ) }}GiB"
-  loop: '{{ range(5, 17) }}'
+  loop: '{{ range(5, 17) | list }}'
   when:
     - fstests_testdev_nvme_partition_euis|bool
     - nvme_symlinks | length >= 1

-- 
2.49.0


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

* [PATCH 08/10] selftests: kmod: add timeout makefile parameter cli support
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (6 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 07/10] fstests: fix ansible range type error Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15  9:58 ` [PATCH 09/10] fstests: tmpfs: expunges: testing Daniel Gomez
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Add makefile parameter support to control SELFTEST_SECTION_KMOD_TIMEOUT
Kconfig option via Makefile cli with KMOD_TIMEOUT. This is needed to
adapt timeout to the machine characteristics.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 workflows/selftests/Kconfig | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/workflows/selftests/Kconfig b/workflows/selftests/Kconfig
index 1ecfcc6a23aebdd11b2e83cdcbb92d6e9e97744a..ea69775c7f9e0ffb8a6d6e3520dcbddde10d8c57 100644
--- a/workflows/selftests/Kconfig
+++ b/workflows/selftests/Kconfig
@@ -1,5 +1,9 @@
 if KDEVOPS_WORKFLOW_ENABLE_SELFTESTS
 
+config SELFTESTS_KMOD_TIMEOUT_SET_BY_CLI
+	bool
+	default $(shell, scripts/check-cli-set-var.sh KMOD_TIMEOUT)
+
 menu "Configure what to test in selftests"
 
 config SELFTESTS_BUILD_RADIX_TREE
@@ -111,7 +115,8 @@ config SELFTESTS_SECTION_KMOD_TIMEOUT
 	int "kmod timeout"
 	output yaml
 	depends on SELFTESTS_SECTION_KMOD
-	default 165
+	default 165 if !SELFTESTS_KMOD_TIMEOUT_SET_BY_CLI
+	default $(shell, ./scripts/append-makefile-vars-int.sh $(KMOD_TIMEOUT)) if SELFTESTS_KMOD_TIMEOUT_SET_BY_CLI
 	help
 	  A default timeout of 45 seconds is used for runner, however each
 	  runner system configuration may also vary. So a timeout is very

-- 
2.49.0


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

* [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (7 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 08/10] selftests: kmod: add timeout makefile parameter cli support Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-15 16:18   ` Chuck Lever
  2025-06-15  9:58 ` [PATCH 10/10] workflows: add support to change kdevops repo in guests via cli Daniel Gomez
  2025-06-26 18:59 ` [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
  10 siblings, 1 reply; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Do not run generic/449 on tmpfs. It does not apply.

This needs to be fixed upstream, but in the meantime, do not delay ci
unnecessarly.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 workflows/fstests/expunges/any/tmpfs/unassigned/all.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
new file mode 100644
index 0000000000000000000000000000000000000000..755ef4617fdba241e9676bdbc6cec52635cae7d8
--- /dev/null
+++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
@@ -0,0 +1 @@
+generic/449

-- 
2.49.0


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

* [PATCH 10/10] workflows: add support to change kdevops repo in guests via cli
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (8 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 09/10] fstests: tmpfs: expunges: testing Daniel Gomez
@ 2025-06-15  9:58 ` Daniel Gomez
  2025-06-26 18:59 ` [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-15  9:58 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: kdevops, Daniel Gomez, Chuck Lever, Daniel Gomez

From: Daniel Gomez <da.gomez@samsung.com>

Add support for GUEST_KDEVOPS_REPO and GUEST_KDEVOPS_REF make cli
variables to be able to change the kdevops repository and git reference
being cloned in the guests. This is useful for developers so they can
easily point to their kdevops' tree.

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
 kconfigs/workflows/Kconfig.shared | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/kconfigs/workflows/Kconfig.shared b/kconfigs/workflows/Kconfig.shared
index d05f31964684b09cfd787011e442a9a504460e88..29176b89e69faf5078de89fde1c52b96669bba7c 100644
--- a/kconfigs/workflows/Kconfig.shared
+++ b/kconfigs/workflows/Kconfig.shared
@@ -2,6 +2,16 @@ menu "Shared workflow data partition"
 source "kconfigs/workflows/Kconfig.data_partition"
 endmenu
 
+config WORKFLOW_KDEVOPS_GIT_SET_BY_CLI
+	bool
+	select HAVE_CUSTOM_KDEVOPS_GIT
+	default $(shell, scripts/check-cli-set-var.sh GUEST_KDEVOPS_REPO)
+
+config WORKFLOW_KDEVOPS_GIT_VERSION_SET_BY_CLI
+	bool
+	select HAVE_CUSTOM_KDEVOPS_GIT_VERSION
+	default $(shell, scripts/check-cli-set-var.sh GUEST_KDEVOPS_REF)
+
 config HAVE_CUSTOM_KDEVOPS_GIT
 	bool
 	default n
@@ -69,7 +79,7 @@ config WORKFLOW_KDEVOPS_GIT
 
 config WORKFLOW_KDEVOPS_GIT_VERSION
 	string "Git tree version (branch/tag/commit) of kdevops to clone on targets"
-	default "HEAD"
+	default CUSTOM_KDEVOPS_GIT_VERSION if HAVE_CUSTOM_KDEVOPS_GIT_VERSION
 	help
 	  Specify the verison of the custom kdevops git repository to check out
 	  on each target.
@@ -85,11 +95,12 @@ config HAVE_MIRROR_KDEVOPS
 
 config WORKFLOW_KDEVOPS_GIT
 	string
-	default "https://github.com/linux-kdevops/kdevops.git" if !GIT_ALTERNATIVES && !HAVE_CUSTOM_KDEVOPS_GIT
+	default "https://github.com/linux-kdevops/kdevops.git" if !GIT_ALTERNATIVES && !HAVE_CUSTOM_KDEVOPS_GIT && !WORKFLOW_KDEVOPS_GIT_SET_BY_CLI
 	default "https://github.com/linux-kdevops/kdevops.git" if GIT_LINUX_KDEVOPS_GITHUB && !HAVE_MIRROR_KDEVOPS
 	default "https://gitlab.com/linux-kdevops/kdevops.git" if GIT_LINUX_KDEVOPS_GITLAB && !HAVE_MIRROR_KDEVOPS
-	default $(shell, scripts/append-makefile-vars.sh git:// $(KDEVOPS_DEFAULT_BRIDGE_IP_VAGRANT) /mirror/kdevops.git) if HAVE_MIRROR_KDEVOPS && VAGRANT
-	default $(shell, scripts/append-makefile-vars.sh git:// $(KDEVOPS_DEFAULT_BRIDGE_IP_GUESTFS) /mirror/kdevops.git) if HAVE_MIRROR_KDEVOPS && GUESTFS
+	default $(shell, scripts/append-makefile-vars.sh git:// $(KDEVOPS_DEFAULT_BRIDGE_IP_VAGRANT) /mirror/kdevops.git) if HAVE_MIRROR_KDEVOPS && VAGRANT && !WORKFLOW_KDEVOPS_GIT_SET_BY_CLI
+	default $(shell, scripts/append-makefile-vars.sh git:// $(KDEVOPS_DEFAULT_BRIDGE_IP_GUESTFS) /mirror/kdevops.git) if HAVE_MIRROR_KDEVOPS && GUESTFS && !WORKFLOW_KDEVOPS_GIT_SET_BY_CLI
+	default $(shell, ./scripts/append-makefile-vars.sh $(GUEST_KDEVOPS_REPO)) if WORKFLOW_KDEVOPS_GIT_SET_BY_CLI
 	help
 	  Some workflows want to also clone a version of kdevops on each target.
 	  An example of this is when using the fstests workflow, which carries
@@ -99,7 +110,9 @@ config WORKFLOW_KDEVOPS_GIT
 	  baseline.
 
 config WORKFLOW_KDEVOPS_GIT_VERSION
-	default "HEAD"
+	string
+	default "HEAD" if !WORKFLOW_KDEVOPS_GIT_VERSION_SET_BY_CLI
+	default $(shell, ./scripts/append-makefile-vars.sh $(GUEST_KDEVOPS_REF)) if WORKFLOW_KDEVOPS_GIT_VERSION_SET_BY_CLI
 	help
 	  Specify the verison of the custom kdevops git repository to check out
 	  on each target.

-- 
2.49.0


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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-15  9:58 ` [PATCH 09/10] fstests: tmpfs: expunges: testing Daniel Gomez
@ 2025-06-15 16:18   ` Chuck Lever
  2025-06-16 10:41     ` Daniel Gomez
  0 siblings, 1 reply; 21+ messages in thread
From: Chuck Lever @ 2025-06-15 16:18 UTC (permalink / raw)
  To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 6/15/25 5:58 AM, Daniel Gomez wrote:
> From: Daniel Gomez <da.gomez@samsung.com>
> 
> Do not run generic/449 on tmpfs. It does not apply.
> 
> This needs to be fixed upstream, but in the meantime, do not delay ci
> unnecessarly.
> 
> Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> ---
>  workflows/fstests/expunges/any/tmpfs/unassigned/all.txt | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
> new file mode 100644
> index 0000000000000000000000000000000000000000..755ef4617fdba241e9676bdbc6cec52635cae7d8
> --- /dev/null
> +++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
> @@ -0,0 +1 @@
> +generic/449
> 

For comparison, here is the expunge list I use for tmpfs:

diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
new file mode 100644
index 000000000000..86710a98776b
--- /dev/null
+++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
@@ -0,0 +1,3 @@
+generic/449
+generic/551
+generic/561

So: agreed on 449. Should we consider skipping generic/551 and
generic/561 too?

-- 
Chuck Lever

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-15 16:18   ` Chuck Lever
@ 2025-06-16 10:41     ` Daniel Gomez
  2025-06-16 14:31       ` Chuck Lever
  0 siblings, 1 reply; 21+ messages in thread
From: Daniel Gomez @ 2025-06-16 10:41 UTC (permalink / raw)
  To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez


On 15/06/2025 18.18, Chuck Lever wrote:
> On 6/15/25 5:58 AM, Daniel Gomez wrote:
> For comparison, here is the expunge list I use for tmpfs:
> 
> diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
> b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
> new file mode 100644
> index 000000000000..86710a98776b
> --- /dev/null
> +++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
> @@ -0,0 +1,3 @@
> +generic/449
> +generic/551
> +generic/561

The time spent in generic/449 before it's skipped is quite long, that's why I
added it here.

But rather than augment expunges I think it'd be better to do it directly
in xfstests as done by Hugh [1] in a patch list I got from him some time last
year. (BTW, I think you've probably received the same here [2], right?).
Unfortunately, I got stuck in this review before reaching to that point [3]
and never had the time to follow it up:
 
[1] https://gitlab.com/da.gomez/xfstests-dev/-/commits/hughd/tmpfs-fixes?ref_type=heads
[2] https://lore.kernel.org/all/5d1e7ea8-be4c-4906-a1d4-835fa46da605@oracle.com/
[3] https://lore.kernel.org/all/20240614061722.1080-1-da.gomez@samsung.com/

This is the actual time spent on generic/449 in my current setup:

[ 1468.203926] run fstests generic/446 at 2025-06-16 08:19:06
[ 1472.522334] run fstests generic/447 at 2025-06-16 08:19:11
[ 1473.208250] run fstests generic/448 at 2025-06-16 08:19:11
[ 1474.527435] run fstests generic/449 at 2025-06-16 08:19:13
[ 6894.771567] run fstests generic/450 at 2025-06-16 09:49:33
[ 6895.431099] run fstests generic/451 at 2025-06-16 09:49:34

> 
> So: agreed on 449. Should we consider skipping generic/551 and
> generic/561 too?
> 

For generic/551 I'm currently getting this:

[ 7081.496735] run fstests generic/547 at 2025-06-16 09:52:40
[ 7082.015303] run fstests generic/548 at 2025-06-16 09:52:40
[ 7082.689962] run fstests generic/549 at 2025-06-16 09:52:41
[ 7083.406567] run fstests generic/550 at 2025-06-16 09:52:41
[ 7083.887618] run fstests generic/551 at 2025-06-16 09:52:42
[ 7089.441945] aio-dio-write-v invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=250
[ 7089.442675] CPU: 2 UID: 0 PID: 1842847 Comm: aio-dio-write-v Not tainted 6.16.0-rc2 #9 PREEMPT(full)
[ 7089.442677] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 2025.02-6 04/08/2025
[ 7089.442678] Call Trace:
[ 7089.442679]  <TASK>
[ 7089.442680]  dump_stack_lvl+0x56/0x80
[ 7089.442685]  dump_header+0x43/0x1b7
[ 7089.442687]  oom_kill_process.cold+0x8/0x90
[ 7089.442689]  out_of_memory+0x162/0x4f0
[ 7089.442692]  __alloc_pages_slowpath.constprop.0+0x9fc/0xda0
[ 7089.442695]  __alloc_frozen_pages_noprof+0x359/0x370
[ 7089.442698]  alloc_pages_mpol+0x7d/0x1c0
[ 7089.442700]  folio_alloc_mpol_noprof+0x14/0xb0
[ 7089.442702]  shmem_alloc_folio+0x9c/0xb0
[ 7089.442705]  shmem_alloc_and_add_folio+0x174/0x550
[ 7089.442706]  ? shmem_allowable_huge_orders+0xc6/0x140
[ 7089.442708]  shmem_get_folio_gfp+0x229/0x740
[ 7089.442709]  shmem_write_begin+0x51/0x130
[ 7089.442711]  generic_perform_write+0xc7/0x2d0
[ 7089.442713]  shmem_file_write_iter+0x82/0x90
[ 7089.442715]  aio_write+0x110/0x250
[ 7089.442718]  ? __alloc_object+0x2f/0x220
[ 7089.442720]  ? __link_object+0x142/0x220
[ 7089.442722]  ? _raw_spin_unlock_irqrestore+0x23/0x40
[ 7089.442725]  ? __create_object+0x5e/0x90
[ 7089.442726]  ? io_submit_one+0x7b/0x970
[ 7089.442727]  ? kmem_cache_alloc_noprof+0x310/0x3d0
[ 7089.442730]  ? _raw_spin_lock_irqsave+0x23/0x50
[ 7089.442732]  ? io_submit_one+0x435/0x970
[ 7089.442733]  io_submit_one+0x435/0x970
[ 7089.442735]  __x64_sys_io_submit+0x81/0x1c0
[ 7089.442736]  do_syscall_64+0x50/0x1e0
[ 7089.442739]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 7089.442740] RIP: 0033:0x7f15a5122779
[ 7089.442745] Code: Unable to access opcode bytes at 0x7f15a512274f.
[ 7089.442746] RSP: 002b:00007ffdb85b0288 EFLAGS: 00000246 ORIG_RAX: 00000000000000d1
[ 7089.442747] RAX: ffffffffffffffda RBX: 00007f15a50116c8 RCX: 00007f15a5122779
[ 7089.442748] RDX: 000056050750e0b0 RSI: 0000000000000019 RDI: 00007f15a5214000
[ 7089.442749] RBP: 00007f15a5214000 R08: 0000000000000001 R09: 0000000000000003
[ 7089.442750] R10: 00007f15a51fbac0 R11: 0000000000000246 R12: 0000000000000019
[ 7089.442750] R13: 0000000000000000 R14: 000056050750e0b0 R15: 000056050750e0b0
[ 7089.442753]  </TASK>
[ 7089.442753] Mem-Info:
[ 7089.459986] active_anon:922060 inactive_anon:12934 isolated_anon:0
                active_file:2 inactive_file:55 isolated_file:0
                unevictable:0 dirty:11 writeback:0
                slab_reclaimable:3359 slab_unreclaimable:25305
                mapped:83 shmem:62663 pagetables:2595
                sec_pagetables:0 bounce:0
                kernel_misc_reclaimable:0
                free:20479 free_pcp:2269 free_cma:0
[ 7089.462234] Node 0 active_anon:3688240kB inactive_anon:51736kB active_file:8kB inactive_file:220kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:332kB dirty:44kB writeback:0kB shmem:250652kB
[ 7089.464097] Node 0 DMA free:14368kB boost:0kB min:248kB low:308kB high:368kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB w
[ 7089.465762] lowmem_reserve[]: 0 1927 3899 3899 3899
[ 7089.466055] Node 0 DMA32 free:33328kB boost:0kB min:32280kB low:40348kB high:48416kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1930668kB inactive_anon:1896kB active_file:0kB inactive_file:68kB
[ 7089.467823] lowmem_reserve[]: 0 0 1971 1971 1971
[ 7089.468099] Node 0 Normal free:34220kB boost:6144kB min:41196kB low:49956kB high:58716kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1727272kB inactive_anon:80140kB active_file:216kB inactive_fi
[ 7089.470959] lowmem_reserve[]: 0 0 0 0 0
[ 7089.471360] Node 0 DMA: 2*4kB (U) 1*8kB (U) 1*16kB (U) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 2*1024kB (U) 2*2048kB (M) 2*4096kB (M) = 14368kB
[ 7089.472594] Node 0 DMA32: 2*4kB (UM) 2*8kB (UM) 4*16kB (UE) 5*32kB (UME) 5*64kB (UE) 3*128kB (UE) 5*256kB (UME) 5*512kB (UME) 12*1024kB (UME) 6*2048kB (M) 1*4096kB (M) = 33464kB
[ 7089.474152] Node 0 Normal: 1439*4kB (UME) 152*8kB (UME) 15*16kB (UME) 26*32kB (UME) 55*64kB (UM) 99*128kB (UME) 39*256kB (UME) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 34220kB
[ 7089.475695] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
[ 7089.476577] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[ 7089.477441] 62699 total pagecache pages
[ 7089.477836] 0 pages in swap cache
[ 7089.478182] Free swap  = 0kB
[ 7089.478481] Total swap = 0kB
[ 7089.478825] 1046922 pages RAM
[ 7089.479139] 0 pages HighMem/MovableOnly
[ 7089.479533] 45176 pages reserved
[ 7089.479866] 0 pages cma reserved
[ 7089.480200] 0 pages hwpoisoned
[ 7089.480524] Tasks state (memory values in pages):
[ 7089.481036] [  pid  ]   uid  tgid total_vm      rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name
[ 7089.482135] [    342]     0   342    19052      351      320       29         2   147456        0          -250 systemd-journal
[ 7089.483304] [    390]   991   390     5859      728      672       56         0    86016        0             0 systemd-resolve
[ 7089.483978] [    391]   997   391    23058      298      256       42         0    90112        0             0 systemd-timesyn
[ 7089.484657] [    401]     0   401     8148      573      512       61         0    86016        0         -1000 systemd-udevd
[ 7089.485345] [    411]   998   411     5242      520      336      184         0    86016        0             0 systemd-network
[ 7089.486005] [    517]   103   517     1643      179       96       83         0    49152        0             0 rpcbind
[ 7089.486671] [    614]   996   614     2016      119       64       55         0    61440        0          -900 dbus-daemon
[ 7089.487305] [    629]     0   629    20227       49       32       17         0    57344        0             0 qemu-ga
[ 7089.487919] [    630]     0   630     1466      211      160       51         0    53248        0             0 dhclient
[ 7089.488557] [    633]     0   633     4659      348      288       60         0    73728        0             0 systemd-logind
[ 7089.489243] [    684]     0   684     1316       58       33       25         0    53248        0             0 blkmapd
[ 7089.489865] [    773] 63150   773    16062      582      512       70         0   147456        0             0 systemd-journal
[ 7089.490552] [    783]     0   783     2974      406      320       86         0    65536        0         -1000 sshd
[ 7089.491166] [    788]     0   788     2042       91       32       59         0    57344        0             0 agetty
[ 7089.491782] [    789]     0   789     1945      103       32       71         0    61440        0             0 agetty
[ 7089.492474] [    790]     0   790     4883      579      512       67         0    81920        0             0 sshd-session
[ 7089.493568] [    795]  1002   795     5507      588      544       44         0    90112        0           100 systemd
[ 7089.494638] [    799]  1002   799     5587      484      425       59         0    73728        0           100 (sd-pam)
[ 7089.495683] [    820]  1002   820     5024      695      633       62         0    86016        0             0 sshd-session
[ 7089.496848] [   1041]     0  1041     4838      545      480       65         0    77824        0             0 sshd-session
[ 7089.497983] [   1057]  1002  1057     4890      593      521       72         0    73728        0             0 sshd-session
[ 7089.499155] [   1064]  1002  1064     2262      675      576       99         0    65536        0             0 bash
[ 7089.500220] [   1119]  1002  1119      672       94        0       94         0    49152        0             0 sh
[ 7089.501316] [   1120]  1002  1120     4961      338      288       50         0    73728        0             0 sudo
[ 7089.502389] [   1122]  1002  1122     4961      341      297       44         0    61440        0             0 sudo
[ 7089.503495] [   1123]     0  1123     2555      153       96       57         0    53248        0             0 su
[ 7089.504540] [   1125]     0  1125     9117     3472     3418       54         0   110592        0             0 python3
[ 7089.505618] [   1147]     0  1147     1906      210      160       50         0    57344        0             0 oscheck.sh
[ 7089.506726] [   1662]     0  1662     2008     1044      992       52         0    61440        0          -500 bash
[ 7089.507603] [   2357]  1002  2357     4960      375      288       87         0    77824        0             0 sudo
[ 7089.508214] [   2365]  1002  2365     4960      359      297       62         0    65536        0             0 sudo
[ 7089.508867] [   2367]     0  2367     1469      104       32       72         0    53248        0             0 dmesg
[ 7089.509482] [1842640]     0 1842640     1779      886      800       86         0    53248        0           250 551
[ 7089.510087] [1842847]     0 1842847   858194   857584   857535       49         0  6922240        0           250 aio-dio-write-v
[ 7089.510794] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/fstests-generic-551.scope,task=aio-dio-write-v,pid=1842847,uid=0
[ 7089.511761] Out of memory: Killed process 1842847 (aio-dio-write-v) total-vm:3432776kB, anon-rss:3430140kB, file-rss:196kB, shmem-rss:0kB, UID:0 pgtables:6760kB oom_score_adj:250
[ 7090.616260] run fstests generic/552 at 2025-06-16 09:52:49

So, why do you want to skip it?

I think Hugh's patch [1] on generic/551 is unrelated to the above. And maybe my
VM just needs more memory to pass this test?

[1] https://gitlab.com/da.gomez/xfstests-dev/-/commit/cfc6b431403123d70bf25842c80d6693f0c9ceb6

And same question for generic/561, why do you want to skip it? I see the time
spent for skipping the test is actually fine:

[ 7103.693096] run fstests generic/559 at 2025-06-16 09:53:02
[ 7104.356919] run fstests generic/560 at 2025-06-16 09:53:02
[ 7105.154012] run fstests generic/561 at 2025-06-16 09:53:03
[ 7105.614221] run fstests generic/562 at 2025-06-16 09:53:04
[ 7106.056302] run fstests generic/563 at 2025-06-16 09:53:04

cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.notrun
duperemove utility required, skipped this test
cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.full
umount: /media/scratch: not mounted.

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-16 10:41     ` Daniel Gomez
@ 2025-06-16 14:31       ` Chuck Lever
  2025-06-16 20:24         ` Daniel Gomez
  0 siblings, 1 reply; 21+ messages in thread
From: Chuck Lever @ 2025-06-16 14:31 UTC (permalink / raw)
  To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 6/16/25 6:41 AM, Daniel Gomez wrote:
> 
> On 15/06/2025 18.18, Chuck Lever wrote:
>> On 6/15/25 5:58 AM, Daniel Gomez wrote:
>> For comparison, here is the expunge list I use for tmpfs:
>>
>> diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>> b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>> new file mode 100644
>> index 000000000000..86710a98776b
>> --- /dev/null
>> +++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>> @@ -0,0 +1,3 @@
>> +generic/449
>> +generic/551
>> +generic/561
> 
> The time spent in generic/449 before it's skipped is quite long, that's why I
> added it here.
> 
> But rather than augment expunges I think it'd be better to do it directly
> in xfstests as done by Hugh [1] in a patch list I got from him some time last
> year. (BTW, I think you've probably received the same here [2], right?).

Yes I have that tarball here somewhere, and no time to run these
all down and submit clean patches upstream. :-(


> Unfortunately, I got stuck in this review before reaching to that point [3]
> and never had the time to follow it up:
>  
> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commits/hughd/tmpfs-fixes?ref_type=heads
> [2] https://lore.kernel.org/all/5d1e7ea8-be4c-4906-a1d4-835fa46da605@oracle.com/
> [3] https://lore.kernel.org/all/20240614061722.1080-1-da.gomez@samsung.com/
> 
> This is the actual time spent on generic/449 in my current setup:
> 
> [ 1468.203926] run fstests generic/446 at 2025-06-16 08:19:06
> [ 1472.522334] run fstests generic/447 at 2025-06-16 08:19:11
> [ 1473.208250] run fstests generic/448 at 2025-06-16 08:19:11
> [ 1474.527435] run fstests generic/449 at 2025-06-16 08:19:13
> [ 6894.771567] run fstests generic/450 at 2025-06-16 09:49:33
> [ 6895.431099] run fstests generic/451 at 2025-06-16 09:49:34
> 
>>
>> So: agreed on 449. Should we consider skipping generic/551 and
>> generic/561 too?
>>
> 
> For generic/551 I'm currently getting this:
> 
> [ 7081.496735] run fstests generic/547 at 2025-06-16 09:52:40
> [ 7082.015303] run fstests generic/548 at 2025-06-16 09:52:40
> [ 7082.689962] run fstests generic/549 at 2025-06-16 09:52:41
> [ 7083.406567] run fstests generic/550 at 2025-06-16 09:52:41
> [ 7083.887618] run fstests generic/551 at 2025-06-16 09:52:42
> [ 7089.441945] aio-dio-write-v invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=250
> [ 7089.442675] CPU: 2 UID: 0 PID: 1842847 Comm: aio-dio-write-v Not tainted 6.16.0-rc2 #9 PREEMPT(full)
> [ 7089.442677] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 2025.02-6 04/08/2025
> [ 7089.442678] Call Trace:
> [ 7089.442679]  <TASK>
> [ 7089.442680]  dump_stack_lvl+0x56/0x80
> [ 7089.442685]  dump_header+0x43/0x1b7
> [ 7089.442687]  oom_kill_process.cold+0x8/0x90
> [ 7089.442689]  out_of_memory+0x162/0x4f0
> [ 7089.442692]  __alloc_pages_slowpath.constprop.0+0x9fc/0xda0
> [ 7089.442695]  __alloc_frozen_pages_noprof+0x359/0x370
> [ 7089.442698]  alloc_pages_mpol+0x7d/0x1c0
> [ 7089.442700]  folio_alloc_mpol_noprof+0x14/0xb0
> [ 7089.442702]  shmem_alloc_folio+0x9c/0xb0
> [ 7089.442705]  shmem_alloc_and_add_folio+0x174/0x550
> [ 7089.442706]  ? shmem_allowable_huge_orders+0xc6/0x140
> [ 7089.442708]  shmem_get_folio_gfp+0x229/0x740
> [ 7089.442709]  shmem_write_begin+0x51/0x130
> [ 7089.442711]  generic_perform_write+0xc7/0x2d0
> [ 7089.442713]  shmem_file_write_iter+0x82/0x90
> [ 7089.442715]  aio_write+0x110/0x250
> [ 7089.442718]  ? __alloc_object+0x2f/0x220
> [ 7089.442720]  ? __link_object+0x142/0x220
> [ 7089.442722]  ? _raw_spin_unlock_irqrestore+0x23/0x40
> [ 7089.442725]  ? __create_object+0x5e/0x90
> [ 7089.442726]  ? io_submit_one+0x7b/0x970
> [ 7089.442727]  ? kmem_cache_alloc_noprof+0x310/0x3d0
> [ 7089.442730]  ? _raw_spin_lock_irqsave+0x23/0x50
> [ 7089.442732]  ? io_submit_one+0x435/0x970
> [ 7089.442733]  io_submit_one+0x435/0x970
> [ 7089.442735]  __x64_sys_io_submit+0x81/0x1c0
> [ 7089.442736]  do_syscall_64+0x50/0x1e0
> [ 7089.442739]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [ 7089.442740] RIP: 0033:0x7f15a5122779
> [ 7089.442745] Code: Unable to access opcode bytes at 0x7f15a512274f.
> [ 7089.442746] RSP: 002b:00007ffdb85b0288 EFLAGS: 00000246 ORIG_RAX: 00000000000000d1
> [ 7089.442747] RAX: ffffffffffffffda RBX: 00007f15a50116c8 RCX: 00007f15a5122779
> [ 7089.442748] RDX: 000056050750e0b0 RSI: 0000000000000019 RDI: 00007f15a5214000
> [ 7089.442749] RBP: 00007f15a5214000 R08: 0000000000000001 R09: 0000000000000003
> [ 7089.442750] R10: 00007f15a51fbac0 R11: 0000000000000246 R12: 0000000000000019
> [ 7089.442750] R13: 0000000000000000 R14: 000056050750e0b0 R15: 000056050750e0b0
> [ 7089.442753]  </TASK>
> [ 7089.442753] Mem-Info:
> [ 7089.459986] active_anon:922060 inactive_anon:12934 isolated_anon:0
>                 active_file:2 inactive_file:55 isolated_file:0
>                 unevictable:0 dirty:11 writeback:0
>                 slab_reclaimable:3359 slab_unreclaimable:25305
>                 mapped:83 shmem:62663 pagetables:2595
>                 sec_pagetables:0 bounce:0
>                 kernel_misc_reclaimable:0
>                 free:20479 free_pcp:2269 free_cma:0
> [ 7089.462234] Node 0 active_anon:3688240kB inactive_anon:51736kB active_file:8kB inactive_file:220kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:332kB dirty:44kB writeback:0kB shmem:250652kB
> [ 7089.464097] Node 0 DMA free:14368kB boost:0kB min:248kB low:308kB high:368kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB w
> [ 7089.465762] lowmem_reserve[]: 0 1927 3899 3899 3899
> [ 7089.466055] Node 0 DMA32 free:33328kB boost:0kB min:32280kB low:40348kB high:48416kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1930668kB inactive_anon:1896kB active_file:0kB inactive_file:68kB
> [ 7089.467823] lowmem_reserve[]: 0 0 1971 1971 1971
> [ 7089.468099] Node 0 Normal free:34220kB boost:6144kB min:41196kB low:49956kB high:58716kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1727272kB inactive_anon:80140kB active_file:216kB inactive_fi
> [ 7089.470959] lowmem_reserve[]: 0 0 0 0 0
> [ 7089.471360] Node 0 DMA: 2*4kB (U) 1*8kB (U) 1*16kB (U) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 2*1024kB (U) 2*2048kB (M) 2*4096kB (M) = 14368kB
> [ 7089.472594] Node 0 DMA32: 2*4kB (UM) 2*8kB (UM) 4*16kB (UE) 5*32kB (UME) 5*64kB (UE) 3*128kB (UE) 5*256kB (UME) 5*512kB (UME) 12*1024kB (UME) 6*2048kB (M) 1*4096kB (M) = 33464kB
> [ 7089.474152] Node 0 Normal: 1439*4kB (UME) 152*8kB (UME) 15*16kB (UME) 26*32kB (UME) 55*64kB (UM) 99*128kB (UME) 39*256kB (UME) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 34220kB
> [ 7089.475695] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
> [ 7089.476577] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
> [ 7089.477441] 62699 total pagecache pages
> [ 7089.477836] 0 pages in swap cache
> [ 7089.478182] Free swap  = 0kB
> [ 7089.478481] Total swap = 0kB
> [ 7089.478825] 1046922 pages RAM
> [ 7089.479139] 0 pages HighMem/MovableOnly
> [ 7089.479533] 45176 pages reserved
> [ 7089.479866] 0 pages cma reserved
> [ 7089.480200] 0 pages hwpoisoned
> [ 7089.480524] Tasks state (memory values in pages):
> [ 7089.481036] [  pid  ]   uid  tgid total_vm      rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name
> [ 7089.482135] [    342]     0   342    19052      351      320       29         2   147456        0          -250 systemd-journal
> [ 7089.483304] [    390]   991   390     5859      728      672       56         0    86016        0             0 systemd-resolve
> [ 7089.483978] [    391]   997   391    23058      298      256       42         0    90112        0             0 systemd-timesyn
> [ 7089.484657] [    401]     0   401     8148      573      512       61         0    86016        0         -1000 systemd-udevd
> [ 7089.485345] [    411]   998   411     5242      520      336      184         0    86016        0             0 systemd-network
> [ 7089.486005] [    517]   103   517     1643      179       96       83         0    49152        0             0 rpcbind
> [ 7089.486671] [    614]   996   614     2016      119       64       55         0    61440        0          -900 dbus-daemon
> [ 7089.487305] [    629]     0   629    20227       49       32       17         0    57344        0             0 qemu-ga
> [ 7089.487919] [    630]     0   630     1466      211      160       51         0    53248        0             0 dhclient
> [ 7089.488557] [    633]     0   633     4659      348      288       60         0    73728        0             0 systemd-logind
> [ 7089.489243] [    684]     0   684     1316       58       33       25         0    53248        0             0 blkmapd
> [ 7089.489865] [    773] 63150   773    16062      582      512       70         0   147456        0             0 systemd-journal
> [ 7089.490552] [    783]     0   783     2974      406      320       86         0    65536        0         -1000 sshd
> [ 7089.491166] [    788]     0   788     2042       91       32       59         0    57344        0             0 agetty
> [ 7089.491782] [    789]     0   789     1945      103       32       71         0    61440        0             0 agetty
> [ 7089.492474] [    790]     0   790     4883      579      512       67         0    81920        0             0 sshd-session
> [ 7089.493568] [    795]  1002   795     5507      588      544       44         0    90112        0           100 systemd
> [ 7089.494638] [    799]  1002   799     5587      484      425       59         0    73728        0           100 (sd-pam)
> [ 7089.495683] [    820]  1002   820     5024      695      633       62         0    86016        0             0 sshd-session
> [ 7089.496848] [   1041]     0  1041     4838      545      480       65         0    77824        0             0 sshd-session
> [ 7089.497983] [   1057]  1002  1057     4890      593      521       72         0    73728        0             0 sshd-session
> [ 7089.499155] [   1064]  1002  1064     2262      675      576       99         0    65536        0             0 bash
> [ 7089.500220] [   1119]  1002  1119      672       94        0       94         0    49152        0             0 sh
> [ 7089.501316] [   1120]  1002  1120     4961      338      288       50         0    73728        0             0 sudo
> [ 7089.502389] [   1122]  1002  1122     4961      341      297       44         0    61440        0             0 sudo
> [ 7089.503495] [   1123]     0  1123     2555      153       96       57         0    53248        0             0 su
> [ 7089.504540] [   1125]     0  1125     9117     3472     3418       54         0   110592        0             0 python3
> [ 7089.505618] [   1147]     0  1147     1906      210      160       50         0    57344        0             0 oscheck.sh
> [ 7089.506726] [   1662]     0  1662     2008     1044      992       52         0    61440        0          -500 bash
> [ 7089.507603] [   2357]  1002  2357     4960      375      288       87         0    77824        0             0 sudo
> [ 7089.508214] [   2365]  1002  2365     4960      359      297       62         0    65536        0             0 sudo
> [ 7089.508867] [   2367]     0  2367     1469      104       32       72         0    53248        0             0 dmesg
> [ 7089.509482] [1842640]     0 1842640     1779      886      800       86         0    53248        0           250 551
> [ 7089.510087] [1842847]     0 1842847   858194   857584   857535       49         0  6922240        0           250 aio-dio-write-v
> [ 7089.510794] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/fstests-generic-551.scope,task=aio-dio-write-v,pid=1842847,uid=0
> [ 7089.511761] Out of memory: Killed process 1842847 (aio-dio-write-v) total-vm:3432776kB, anon-rss:3430140kB, file-rss:196kB, shmem-rss:0kB, UID:0 pgtables:6760kB oom_score_adj:250
> [ 7090.616260] run fstests generic/552 at 2025-06-16 09:52:49
> 
> So, why do you want to skip it?
> 
> I think Hugh's patch [1] on generic/551 is unrelated to the above. And maybe my
> VM just needs more memory to pass this test?
> 
> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commit/cfc6b431403123d70bf25842c80d6693f0c9ceb6

My notes show that 551 takes hours on NFS, but I don't see any
explanation of why I added this test to my tmpfs expunge list. I
assume it is for the same reason. I don't recall seeing a crash.


> And same question for generic/561, why do you want to skip it? I see the time
> spent for skipping the test is actually fine:
> 
> [ 7103.693096] run fstests generic/559 at 2025-06-16 09:53:02
> [ 7104.356919] run fstests generic/560 at 2025-06-16 09:53:02
> [ 7105.154012] run fstests generic/561 at 2025-06-16 09:53:03
> [ 7105.614221] run fstests generic/562 at 2025-06-16 09:53:04
> [ 7106.056302] run fstests generic/563 at 2025-06-16 09:53:04
> 
> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.notrun
> duperemove utility required, skipped this test
> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.full
> umount: /media/scratch: not mounted.

generic/561 is testing file de-dup, which tmpfs does not implement.

generic/561 looks for the dupremove utility on the test system to
know whether to run the test. That's a poor check, say, if the test
system is used for testing other file systems, or dupremove is installed
by default.

Could be that 3b9f5fc7d7d8 ("common: call _require_scratch_dedupe from
_require_scratch_duperemove") fixes that so that 561 no longer needs
to be explicitly expunged for NFS and tmpfs.


-- 
Chuck Lever

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-16 14:31       ` Chuck Lever
@ 2025-06-16 20:24         ` Daniel Gomez
  2025-06-16 20:36           ` Chuck Lever
  0 siblings, 1 reply; 21+ messages in thread
From: Daniel Gomez @ 2025-06-16 20:24 UTC (permalink / raw)
  To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez



On 16/06/2025 16.31, Chuck Lever wrote:
> On 6/16/25 6:41 AM, Daniel Gomez wrote:
>>
>> On 15/06/2025 18.18, Chuck Lever wrote:
>>> On 6/15/25 5:58 AM, Daniel Gomez wrote:
>>> For comparison, here is the expunge list I use for tmpfs:
>>>
>>> diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>> b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>> new file mode 100644
>>> index 000000000000..86710a98776b
>>> --- /dev/null
>>> +++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>> @@ -0,0 +1,3 @@
>>> +generic/449
>>> +generic/551
>>> +generic/561
>>
>> The time spent in generic/449 before it's skipped is quite long, that's why I
>> added it here.
>>
>> But rather than augment expunges I think it'd be better to do it directly
>> in xfstests as done by Hugh [1] in a patch list I got from him some time last
>> year. (BTW, I think you've probably received the same here [2], right?).
> 
> Yes I have that tarball here somewhere, and no time to run these
> all down and submit clean patches upstream. :-(

Thanks for letting me know.

> 
> 
>> Unfortunately, I got stuck in this review before reaching to that point [3]
>> and never had the time to follow it up:
>>  
>> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commits/hughd/tmpfs-fixes?ref_type=heads
>> [2] https://lore.kernel.org/all/5d1e7ea8-be4c-4906-a1d4-835fa46da605@oracle.com/
>> [3] https://lore.kernel.org/all/20240614061722.1080-1-da.gomez@samsung.com/
>>
>> This is the actual time spent on generic/449 in my current setup:
>>
>> [ 1468.203926] run fstests generic/446 at 2025-06-16 08:19:06
>> [ 1472.522334] run fstests generic/447 at 2025-06-16 08:19:11
>> [ 1473.208250] run fstests generic/448 at 2025-06-16 08:19:11
>> [ 1474.527435] run fstests generic/449 at 2025-06-16 08:19:13
>> [ 6894.771567] run fstests generic/450 at 2025-06-16 09:49:33
>> [ 6895.431099] run fstests generic/451 at 2025-06-16 09:49:34
>>
>>>
>>> So: agreed on 449. Should we consider skipping generic/551 and
>>> generic/561 too?
>>>
>>
>> For generic/551 I'm currently getting this:
>>
>> [ 7081.496735] run fstests generic/547 at 2025-06-16 09:52:40
>> [ 7082.015303] run fstests generic/548 at 2025-06-16 09:52:40
>> [ 7082.689962] run fstests generic/549 at 2025-06-16 09:52:41
>> [ 7083.406567] run fstests generic/550 at 2025-06-16 09:52:41
>> [ 7083.887618] run fstests generic/551 at 2025-06-16 09:52:42
>> [ 7089.441945] aio-dio-write-v invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=250
>> [ 7089.442675] CPU: 2 UID: 0 PID: 1842847 Comm: aio-dio-write-v Not tainted 6.16.0-rc2 #9 PREEMPT(full)
>> [ 7089.442677] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 2025.02-6 04/08/2025
>> [ 7089.442678] Call Trace:
>> [ 7089.442679]  <TASK>
>> [ 7089.442680]  dump_stack_lvl+0x56/0x80
>> [ 7089.442685]  dump_header+0x43/0x1b7
>> [ 7089.442687]  oom_kill_process.cold+0x8/0x90
>> [ 7089.442689]  out_of_memory+0x162/0x4f0
>> [ 7089.442692]  __alloc_pages_slowpath.constprop.0+0x9fc/0xda0
>> [ 7089.442695]  __alloc_frozen_pages_noprof+0x359/0x370
>> [ 7089.442698]  alloc_pages_mpol+0x7d/0x1c0
>> [ 7089.442700]  folio_alloc_mpol_noprof+0x14/0xb0
>> [ 7089.442702]  shmem_alloc_folio+0x9c/0xb0
>> [ 7089.442705]  shmem_alloc_and_add_folio+0x174/0x550
>> [ 7089.442706]  ? shmem_allowable_huge_orders+0xc6/0x140
>> [ 7089.442708]  shmem_get_folio_gfp+0x229/0x740
>> [ 7089.442709]  shmem_write_begin+0x51/0x130
>> [ 7089.442711]  generic_perform_write+0xc7/0x2d0
>> [ 7089.442713]  shmem_file_write_iter+0x82/0x90
>> [ 7089.442715]  aio_write+0x110/0x250
>> [ 7089.442718]  ? __alloc_object+0x2f/0x220
>> [ 7089.442720]  ? __link_object+0x142/0x220
>> [ 7089.442722]  ? _raw_spin_unlock_irqrestore+0x23/0x40
>> [ 7089.442725]  ? __create_object+0x5e/0x90
>> [ 7089.442726]  ? io_submit_one+0x7b/0x970
>> [ 7089.442727]  ? kmem_cache_alloc_noprof+0x310/0x3d0
>> [ 7089.442730]  ? _raw_spin_lock_irqsave+0x23/0x50
>> [ 7089.442732]  ? io_submit_one+0x435/0x970
>> [ 7089.442733]  io_submit_one+0x435/0x970
>> [ 7089.442735]  __x64_sys_io_submit+0x81/0x1c0
>> [ 7089.442736]  do_syscall_64+0x50/0x1e0
>> [ 7089.442739]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
>> [ 7089.442740] RIP: 0033:0x7f15a5122779
>> [ 7089.442745] Code: Unable to access opcode bytes at 0x7f15a512274f.
>> [ 7089.442746] RSP: 002b:00007ffdb85b0288 EFLAGS: 00000246 ORIG_RAX: 00000000000000d1
>> [ 7089.442747] RAX: ffffffffffffffda RBX: 00007f15a50116c8 RCX: 00007f15a5122779
>> [ 7089.442748] RDX: 000056050750e0b0 RSI: 0000000000000019 RDI: 00007f15a5214000
>> [ 7089.442749] RBP: 00007f15a5214000 R08: 0000000000000001 R09: 0000000000000003
>> [ 7089.442750] R10: 00007f15a51fbac0 R11: 0000000000000246 R12: 0000000000000019
>> [ 7089.442750] R13: 0000000000000000 R14: 000056050750e0b0 R15: 000056050750e0b0
>> [ 7089.442753]  </TASK>
>> [ 7089.442753] Mem-Info:
>> [ 7089.459986] active_anon:922060 inactive_anon:12934 isolated_anon:0
>>                 active_file:2 inactive_file:55 isolated_file:0
>>                 unevictable:0 dirty:11 writeback:0
>>                 slab_reclaimable:3359 slab_unreclaimable:25305
>>                 mapped:83 shmem:62663 pagetables:2595
>>                 sec_pagetables:0 bounce:0
>>                 kernel_misc_reclaimable:0
>>                 free:20479 free_pcp:2269 free_cma:0
>> [ 7089.462234] Node 0 active_anon:3688240kB inactive_anon:51736kB active_file:8kB inactive_file:220kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:332kB dirty:44kB writeback:0kB shmem:250652kB
>> [ 7089.464097] Node 0 DMA free:14368kB boost:0kB min:248kB low:308kB high:368kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB w
>> [ 7089.465762] lowmem_reserve[]: 0 1927 3899 3899 3899
>> [ 7089.466055] Node 0 DMA32 free:33328kB boost:0kB min:32280kB low:40348kB high:48416kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1930668kB inactive_anon:1896kB active_file:0kB inactive_file:68kB
>> [ 7089.467823] lowmem_reserve[]: 0 0 1971 1971 1971
>> [ 7089.468099] Node 0 Normal free:34220kB boost:6144kB min:41196kB low:49956kB high:58716kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1727272kB inactive_anon:80140kB active_file:216kB inactive_fi
>> [ 7089.470959] lowmem_reserve[]: 0 0 0 0 0
>> [ 7089.471360] Node 0 DMA: 2*4kB (U) 1*8kB (U) 1*16kB (U) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 2*1024kB (U) 2*2048kB (M) 2*4096kB (M) = 14368kB
>> [ 7089.472594] Node 0 DMA32: 2*4kB (UM) 2*8kB (UM) 4*16kB (UE) 5*32kB (UME) 5*64kB (UE) 3*128kB (UE) 5*256kB (UME) 5*512kB (UME) 12*1024kB (UME) 6*2048kB (M) 1*4096kB (M) = 33464kB
>> [ 7089.474152] Node 0 Normal: 1439*4kB (UME) 152*8kB (UME) 15*16kB (UME) 26*32kB (UME) 55*64kB (UM) 99*128kB (UME) 39*256kB (UME) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 34220kB
>> [ 7089.475695] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
>> [ 7089.476577] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
>> [ 7089.477441] 62699 total pagecache pages
>> [ 7089.477836] 0 pages in swap cache
>> [ 7089.478182] Free swap  = 0kB
>> [ 7089.478481] Total swap = 0kB
>> [ 7089.478825] 1046922 pages RAM
>> [ 7089.479139] 0 pages HighMem/MovableOnly
>> [ 7089.479533] 45176 pages reserved
>> [ 7089.479866] 0 pages cma reserved
>> [ 7089.480200] 0 pages hwpoisoned
>> [ 7089.480524] Tasks state (memory values in pages):
>> [ 7089.481036] [  pid  ]   uid  tgid total_vm      rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name
>> [ 7089.482135] [    342]     0   342    19052      351      320       29         2   147456        0          -250 systemd-journal
>> [ 7089.483304] [    390]   991   390     5859      728      672       56         0    86016        0             0 systemd-resolve
>> [ 7089.483978] [    391]   997   391    23058      298      256       42         0    90112        0             0 systemd-timesyn
>> [ 7089.484657] [    401]     0   401     8148      573      512       61         0    86016        0         -1000 systemd-udevd
>> [ 7089.485345] [    411]   998   411     5242      520      336      184         0    86016        0             0 systemd-network
>> [ 7089.486005] [    517]   103   517     1643      179       96       83         0    49152        0             0 rpcbind
>> [ 7089.486671] [    614]   996   614     2016      119       64       55         0    61440        0          -900 dbus-daemon
>> [ 7089.487305] [    629]     0   629    20227       49       32       17         0    57344        0             0 qemu-ga
>> [ 7089.487919] [    630]     0   630     1466      211      160       51         0    53248        0             0 dhclient
>> [ 7089.488557] [    633]     0   633     4659      348      288       60         0    73728        0             0 systemd-logind
>> [ 7089.489243] [    684]     0   684     1316       58       33       25         0    53248        0             0 blkmapd
>> [ 7089.489865] [    773] 63150   773    16062      582      512       70         0   147456        0             0 systemd-journal
>> [ 7089.490552] [    783]     0   783     2974      406      320       86         0    65536        0         -1000 sshd
>> [ 7089.491166] [    788]     0   788     2042       91       32       59         0    57344        0             0 agetty
>> [ 7089.491782] [    789]     0   789     1945      103       32       71         0    61440        0             0 agetty
>> [ 7089.492474] [    790]     0   790     4883      579      512       67         0    81920        0             0 sshd-session
>> [ 7089.493568] [    795]  1002   795     5507      588      544       44         0    90112        0           100 systemd
>> [ 7089.494638] [    799]  1002   799     5587      484      425       59         0    73728        0           100 (sd-pam)
>> [ 7089.495683] [    820]  1002   820     5024      695      633       62         0    86016        0             0 sshd-session
>> [ 7089.496848] [   1041]     0  1041     4838      545      480       65         0    77824        0             0 sshd-session
>> [ 7089.497983] [   1057]  1002  1057     4890      593      521       72         0    73728        0             0 sshd-session
>> [ 7089.499155] [   1064]  1002  1064     2262      675      576       99         0    65536        0             0 bash
>> [ 7089.500220] [   1119]  1002  1119      672       94        0       94         0    49152        0             0 sh
>> [ 7089.501316] [   1120]  1002  1120     4961      338      288       50         0    73728        0             0 sudo
>> [ 7089.502389] [   1122]  1002  1122     4961      341      297       44         0    61440        0             0 sudo
>> [ 7089.503495] [   1123]     0  1123     2555      153       96       57         0    53248        0             0 su
>> [ 7089.504540] [   1125]     0  1125     9117     3472     3418       54         0   110592        0             0 python3
>> [ 7089.505618] [   1147]     0  1147     1906      210      160       50         0    57344        0             0 oscheck.sh
>> [ 7089.506726] [   1662]     0  1662     2008     1044      992       52         0    61440        0          -500 bash
>> [ 7089.507603] [   2357]  1002  2357     4960      375      288       87         0    77824        0             0 sudo
>> [ 7089.508214] [   2365]  1002  2365     4960      359      297       62         0    65536        0             0 sudo
>> [ 7089.508867] [   2367]     0  2367     1469      104       32       72         0    53248        0             0 dmesg
>> [ 7089.509482] [1842640]     0 1842640     1779      886      800       86         0    53248        0           250 551
>> [ 7089.510087] [1842847]     0 1842847   858194   857584   857535       49         0  6922240        0           250 aio-dio-write-v
>> [ 7089.510794] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/fstests-generic-551.scope,task=aio-dio-write-v,pid=1842847,uid=0
>> [ 7089.511761] Out of memory: Killed process 1842847 (aio-dio-write-v) total-vm:3432776kB, anon-rss:3430140kB, file-rss:196kB, shmem-rss:0kB, UID:0 pgtables:6760kB oom_score_adj:250
>> [ 7090.616260] run fstests generic/552 at 2025-06-16 09:52:49
>>
>> So, why do you want to skip it?
>>
>> I think Hugh's patch [1] on generic/551 is unrelated to the above. And maybe my
>> VM just needs more memory to pass this test?
>>
>> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commit/cfc6b431403123d70bf25842c80d6693f0c9ceb6
> 
> My notes show that 551 takes hours on NFS, but I don't see any
> explanation of why I added this test to my tmpfs expunge list. I
> assume it is for the same reason. I don't recall seeing a crash.

What I recall now after checking some old pathes is that generic/551 was failing
already for 6.8 [1] among with other tests, so I we added it as part of the
6.8 expunge list for baseline development.

[1]
https://github.com/linux-kdevops/kdevops/blob/main/workflows/fstests/expunges/6.8.0-rc2/tmpfs/unassigned/tmpfs_default.txt


However, I was looking into the oom-kill logs and see if I could make it pass
by increasing VM memory. That didn't work for me, so I added swap and now the
test passes.

[  302.910466] run fstests fstestsdone/000 at 2025-06-16 20:08:19
[  321.826359] Adding 4194300k swap on /swapfile.  Priority:-2 extents:18
across:8069116k
[  333.521446] run fstests fstestsstart/000 at 2025-06-16 20:08:49
[  333.953732] run fstests generic/551 at 2025-06-16 20:08:50
[  549.240019] run fstests fstestsdone/000 at 2025-06-16 20:12:25


I've used:
* 8 GiB guest RAM
* fstests repo including Hugh's patches:
https://gitlab.com/da.gomez/xfstests-dev/-/tree/hughd/tmpfs-fixes?ref_type=heads
* Add temporary swap:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=f6cee4b9-900e-4980-89b7-f0ec7197909c

root@debian13-tmpfs-default:/data/fstests-install/xfstests# free -hm
               total        used        free      shared  buff/cache   available
Mem:           7.8Gi       335Mi       7.5Gi       740Ki        52Mi       7.4Gi
Swap:          4.0Gi          0B       4.0Gi
root@debian13-tmpfs-default:/data/fstests-install/xfstests#
FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
--test-section tmpfs_default generic/551
./oscheck.sh on Debian (13) on 6.12.31-amd64
Running custom kernel: Linux debian13-tmpfs-default 6.12.31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.31-1 (2025-06-09) x86_64 GNU/Linux
Testing section: tmpfs_default
SECTION       -- tmpfs_default
FSTYP         -- tmpfs
PLATFORM      -- Linux/x86_64 debian13-tmpfs-default 6.12.31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.31-1 (2025-06-09)
MKFS_OPTIONS  -- /media/scratch
MOUNT_OPTIONS -- -o size=1088M,nr_inodes=272K /media/scratch /media/scratch

generic/551        215s
Ran: generic/551
Passed all 1 tests
Xunit report: /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.12.31-amd64/tmpfs_default/result.xml

SECTION       -- tmpfs_default
=========================
Ran: generic/551
Passed all 1 tests

Done

Assuming swap is the only thing needed to make the test pass, does it make
sense then to add support in fstests/tmpfs in kdevops to make the test pass?

> 
> 
>> And same question for generic/561, why do you want to skip it? I see the time
>> spent for skipping the test is actually fine:
>>
>> [ 7103.693096] run fstests generic/559 at 2025-06-16 09:53:02
>> [ 7104.356919] run fstests generic/560 at 2025-06-16 09:53:02
>> [ 7105.154012] run fstests generic/561 at 2025-06-16 09:53:03
>> [ 7105.614221] run fstests generic/562 at 2025-06-16 09:53:04
>> [ 7106.056302] run fstests generic/563 at 2025-06-16 09:53:04
>>
>> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.notrun
>> duperemove utility required, skipped this test
>> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.full
>> umount: /media/scratch: not mounted.
> 
> generic/561 is testing file de-dup, which tmpfs does not implement.
> 
> generic/561 looks for the dupremove utility on the test system to
> know whether to run the test. That's a poor check, say, if the test
> system is used for testing other file systems, or dupremove is installed
> by default.

We need to fix that in kdevops and then figure out if generic/561 applies or
not.

> 
> Could be that 3b9f5fc7d7d8 ("common: call _require_scratch_dedupe from
> _require_scratch_duperemove") fixes that so that 561 no longer needs
> to be explicitly expunged for NFS and tmpfs.
> 
> 

The above logs are from an fstests deployed by kdevops which already has that
commit.

git -C /data/fstests log --oneline -1
2cc8c822 (HEAD -> master, origin/master, origin/HEAD) fstests: btrfs: testcase
for sysfs chunk_size attribute validation

So, I added duperemove package to the VM and run the test again:

[   14.841609] run fstests fstestsstart/000 at 2025-06-16 18:17:35
[   16.365091] run fstests generic/561 at 2025-06-16 18:17:36
[   17.141361] run fstests fstestsdone/000 at 2025-06-16 18:17:37

cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/
tmpfs_default/generic/561.notrun
Dedupe not supported by scratch filesystem type: tmpfs

I think the correct path is to add duperemove as fstests workflow dependency to
properly skip the test for tmpfs.

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-16 20:24         ` Daniel Gomez
@ 2025-06-16 20:36           ` Chuck Lever
  2025-06-17  8:34             ` Daniel Gomez
  2025-06-26 19:10             ` Daniel Gomez
  0 siblings, 2 replies; 21+ messages in thread
From: Chuck Lever @ 2025-06-16 20:36 UTC (permalink / raw)
  To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 6/16/25 4:24 PM, Daniel Gomez wrote:
> 
> 
> On 16/06/2025 16.31, Chuck Lever wrote:
>> On 6/16/25 6:41 AM, Daniel Gomez wrote:
>>>
>>> On 15/06/2025 18.18, Chuck Lever wrote:
>>>> On 6/15/25 5:58 AM, Daniel Gomez wrote:
>>>> For comparison, here is the expunge list I use for tmpfs:
>>>>
>>>> diff --git a/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>>> b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>>> new file mode 100644
>>>> index 000000000000..86710a98776b
>>>> --- /dev/null
>>>> +++ b/workflows/fstests/expunges/any/tmpfs/unassigned/all.txt
>>>> @@ -0,0 +1,3 @@
>>>> +generic/449
>>>> +generic/551
>>>> +generic/561
>>>
>>> The time spent in generic/449 before it's skipped is quite long, that's why I
>>> added it here.
>>>
>>> But rather than augment expunges I think it'd be better to do it directly
>>> in xfstests as done by Hugh [1] in a patch list I got from him some time last
>>> year. (BTW, I think you've probably received the same here [2], right?).
>>
>> Yes I have that tarball here somewhere, and no time to run these
>> all down and submit clean patches upstream. :-(
> 
> Thanks for letting me know.
> 
>>
>>
>>> Unfortunately, I got stuck in this review before reaching to that point [3]
>>> and never had the time to follow it up:
>>>  
>>> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commits/hughd/tmpfs-fixes?ref_type=heads
>>> [2] https://lore.kernel.org/all/5d1e7ea8-be4c-4906-a1d4-835fa46da605@oracle.com/
>>> [3] https://lore.kernel.org/all/20240614061722.1080-1-da.gomez@samsung.com/
>>>
>>> This is the actual time spent on generic/449 in my current setup:
>>>
>>> [ 1468.203926] run fstests generic/446 at 2025-06-16 08:19:06
>>> [ 1472.522334] run fstests generic/447 at 2025-06-16 08:19:11
>>> [ 1473.208250] run fstests generic/448 at 2025-06-16 08:19:11
>>> [ 1474.527435] run fstests generic/449 at 2025-06-16 08:19:13
>>> [ 6894.771567] run fstests generic/450 at 2025-06-16 09:49:33
>>> [ 6895.431099] run fstests generic/451 at 2025-06-16 09:49:34
>>>
>>>>
>>>> So: agreed on 449. Should we consider skipping generic/551 and
>>>> generic/561 too?
>>>>
>>>
>>> For generic/551 I'm currently getting this:
>>>
>>> [ 7081.496735] run fstests generic/547 at 2025-06-16 09:52:40
>>> [ 7082.015303] run fstests generic/548 at 2025-06-16 09:52:40
>>> [ 7082.689962] run fstests generic/549 at 2025-06-16 09:52:41
>>> [ 7083.406567] run fstests generic/550 at 2025-06-16 09:52:41
>>> [ 7083.887618] run fstests generic/551 at 2025-06-16 09:52:42
>>> [ 7089.441945] aio-dio-write-v invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=250
>>> [ 7089.442675] CPU: 2 UID: 0 PID: 1842847 Comm: aio-dio-write-v Not tainted 6.16.0-rc2 #9 PREEMPT(full)
>>> [ 7089.442677] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 2025.02-6 04/08/2025
>>> [ 7089.442678] Call Trace:
>>> [ 7089.442679]  <TASK>
>>> [ 7089.442680]  dump_stack_lvl+0x56/0x80
>>> [ 7089.442685]  dump_header+0x43/0x1b7
>>> [ 7089.442687]  oom_kill_process.cold+0x8/0x90
>>> [ 7089.442689]  out_of_memory+0x162/0x4f0
>>> [ 7089.442692]  __alloc_pages_slowpath.constprop.0+0x9fc/0xda0
>>> [ 7089.442695]  __alloc_frozen_pages_noprof+0x359/0x370
>>> [ 7089.442698]  alloc_pages_mpol+0x7d/0x1c0
>>> [ 7089.442700]  folio_alloc_mpol_noprof+0x14/0xb0
>>> [ 7089.442702]  shmem_alloc_folio+0x9c/0xb0
>>> [ 7089.442705]  shmem_alloc_and_add_folio+0x174/0x550
>>> [ 7089.442706]  ? shmem_allowable_huge_orders+0xc6/0x140
>>> [ 7089.442708]  shmem_get_folio_gfp+0x229/0x740
>>> [ 7089.442709]  shmem_write_begin+0x51/0x130
>>> [ 7089.442711]  generic_perform_write+0xc7/0x2d0
>>> [ 7089.442713]  shmem_file_write_iter+0x82/0x90
>>> [ 7089.442715]  aio_write+0x110/0x250
>>> [ 7089.442718]  ? __alloc_object+0x2f/0x220
>>> [ 7089.442720]  ? __link_object+0x142/0x220
>>> [ 7089.442722]  ? _raw_spin_unlock_irqrestore+0x23/0x40
>>> [ 7089.442725]  ? __create_object+0x5e/0x90
>>> [ 7089.442726]  ? io_submit_one+0x7b/0x970
>>> [ 7089.442727]  ? kmem_cache_alloc_noprof+0x310/0x3d0
>>> [ 7089.442730]  ? _raw_spin_lock_irqsave+0x23/0x50
>>> [ 7089.442732]  ? io_submit_one+0x435/0x970
>>> [ 7089.442733]  io_submit_one+0x435/0x970
>>> [ 7089.442735]  __x64_sys_io_submit+0x81/0x1c0
>>> [ 7089.442736]  do_syscall_64+0x50/0x1e0
>>> [ 7089.442739]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
>>> [ 7089.442740] RIP: 0033:0x7f15a5122779
>>> [ 7089.442745] Code: Unable to access opcode bytes at 0x7f15a512274f.
>>> [ 7089.442746] RSP: 002b:00007ffdb85b0288 EFLAGS: 00000246 ORIG_RAX: 00000000000000d1
>>> [ 7089.442747] RAX: ffffffffffffffda RBX: 00007f15a50116c8 RCX: 00007f15a5122779
>>> [ 7089.442748] RDX: 000056050750e0b0 RSI: 0000000000000019 RDI: 00007f15a5214000
>>> [ 7089.442749] RBP: 00007f15a5214000 R08: 0000000000000001 R09: 0000000000000003
>>> [ 7089.442750] R10: 00007f15a51fbac0 R11: 0000000000000246 R12: 0000000000000019
>>> [ 7089.442750] R13: 0000000000000000 R14: 000056050750e0b0 R15: 000056050750e0b0
>>> [ 7089.442753]  </TASK>
>>> [ 7089.442753] Mem-Info:
>>> [ 7089.459986] active_anon:922060 inactive_anon:12934 isolated_anon:0
>>>                 active_file:2 inactive_file:55 isolated_file:0
>>>                 unevictable:0 dirty:11 writeback:0
>>>                 slab_reclaimable:3359 slab_unreclaimable:25305
>>>                 mapped:83 shmem:62663 pagetables:2595
>>>                 sec_pagetables:0 bounce:0
>>>                 kernel_misc_reclaimable:0
>>>                 free:20479 free_pcp:2269 free_cma:0
>>> [ 7089.462234] Node 0 active_anon:3688240kB inactive_anon:51736kB active_file:8kB inactive_file:220kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:332kB dirty:44kB writeback:0kB shmem:250652kB
>>> [ 7089.464097] Node 0 DMA free:14368kB boost:0kB min:248kB low:308kB high:368kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB w
>>> [ 7089.465762] lowmem_reserve[]: 0 1927 3899 3899 3899
>>> [ 7089.466055] Node 0 DMA32 free:33328kB boost:0kB min:32280kB low:40348kB high:48416kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1930668kB inactive_anon:1896kB active_file:0kB inactive_file:68kB
>>> [ 7089.467823] lowmem_reserve[]: 0 0 1971 1971 1971
>>> [ 7089.468099] Node 0 Normal free:34220kB boost:6144kB min:41196kB low:49956kB high:58716kB reserved_highatomic:0KB free_highatomic:0KB active_anon:1727272kB inactive_anon:80140kB active_file:216kB inactive_fi
>>> [ 7089.470959] lowmem_reserve[]: 0 0 0 0 0
>>> [ 7089.471360] Node 0 DMA: 2*4kB (U) 1*8kB (U) 1*16kB (U) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 2*1024kB (U) 2*2048kB (M) 2*4096kB (M) = 14368kB
>>> [ 7089.472594] Node 0 DMA32: 2*4kB (UM) 2*8kB (UM) 4*16kB (UE) 5*32kB (UME) 5*64kB (UE) 3*128kB (UE) 5*256kB (UME) 5*512kB (UME) 12*1024kB (UME) 6*2048kB (M) 1*4096kB (M) = 33464kB
>>> [ 7089.474152] Node 0 Normal: 1439*4kB (UME) 152*8kB (UME) 15*16kB (UME) 26*32kB (UME) 55*64kB (UM) 99*128kB (UME) 39*256kB (UME) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 34220kB
>>> [ 7089.475695] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
>>> [ 7089.476577] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
>>> [ 7089.477441] 62699 total pagecache pages
>>> [ 7089.477836] 0 pages in swap cache
>>> [ 7089.478182] Free swap  = 0kB
>>> [ 7089.478481] Total swap = 0kB
>>> [ 7089.478825] 1046922 pages RAM
>>> [ 7089.479139] 0 pages HighMem/MovableOnly
>>> [ 7089.479533] 45176 pages reserved
>>> [ 7089.479866] 0 pages cma reserved
>>> [ 7089.480200] 0 pages hwpoisoned
>>> [ 7089.480524] Tasks state (memory values in pages):
>>> [ 7089.481036] [  pid  ]   uid  tgid total_vm      rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name
>>> [ 7089.482135] [    342]     0   342    19052      351      320       29         2   147456        0          -250 systemd-journal
>>> [ 7089.483304] [    390]   991   390     5859      728      672       56         0    86016        0             0 systemd-resolve
>>> [ 7089.483978] [    391]   997   391    23058      298      256       42         0    90112        0             0 systemd-timesyn
>>> [ 7089.484657] [    401]     0   401     8148      573      512       61         0    86016        0         -1000 systemd-udevd
>>> [ 7089.485345] [    411]   998   411     5242      520      336      184         0    86016        0             0 systemd-network
>>> [ 7089.486005] [    517]   103   517     1643      179       96       83         0    49152        0             0 rpcbind
>>> [ 7089.486671] [    614]   996   614     2016      119       64       55         0    61440        0          -900 dbus-daemon
>>> [ 7089.487305] [    629]     0   629    20227       49       32       17         0    57344        0             0 qemu-ga
>>> [ 7089.487919] [    630]     0   630     1466      211      160       51         0    53248        0             0 dhclient
>>> [ 7089.488557] [    633]     0   633     4659      348      288       60         0    73728        0             0 systemd-logind
>>> [ 7089.489243] [    684]     0   684     1316       58       33       25         0    53248        0             0 blkmapd
>>> [ 7089.489865] [    773] 63150   773    16062      582      512       70         0   147456        0             0 systemd-journal
>>> [ 7089.490552] [    783]     0   783     2974      406      320       86         0    65536        0         -1000 sshd
>>> [ 7089.491166] [    788]     0   788     2042       91       32       59         0    57344        0             0 agetty
>>> [ 7089.491782] [    789]     0   789     1945      103       32       71         0    61440        0             0 agetty
>>> [ 7089.492474] [    790]     0   790     4883      579      512       67         0    81920        0             0 sshd-session
>>> [ 7089.493568] [    795]  1002   795     5507      588      544       44         0    90112        0           100 systemd
>>> [ 7089.494638] [    799]  1002   799     5587      484      425       59         0    73728        0           100 (sd-pam)
>>> [ 7089.495683] [    820]  1002   820     5024      695      633       62         0    86016        0             0 sshd-session
>>> [ 7089.496848] [   1041]     0  1041     4838      545      480       65         0    77824        0             0 sshd-session
>>> [ 7089.497983] [   1057]  1002  1057     4890      593      521       72         0    73728        0             0 sshd-session
>>> [ 7089.499155] [   1064]  1002  1064     2262      675      576       99         0    65536        0             0 bash
>>> [ 7089.500220] [   1119]  1002  1119      672       94        0       94         0    49152        0             0 sh
>>> [ 7089.501316] [   1120]  1002  1120     4961      338      288       50         0    73728        0             0 sudo
>>> [ 7089.502389] [   1122]  1002  1122     4961      341      297       44         0    61440        0             0 sudo
>>> [ 7089.503495] [   1123]     0  1123     2555      153       96       57         0    53248        0             0 su
>>> [ 7089.504540] [   1125]     0  1125     9117     3472     3418       54         0   110592        0             0 python3
>>> [ 7089.505618] [   1147]     0  1147     1906      210      160       50         0    57344        0             0 oscheck.sh
>>> [ 7089.506726] [   1662]     0  1662     2008     1044      992       52         0    61440        0          -500 bash
>>> [ 7089.507603] [   2357]  1002  2357     4960      375      288       87         0    77824        0             0 sudo
>>> [ 7089.508214] [   2365]  1002  2365     4960      359      297       62         0    65536        0             0 sudo
>>> [ 7089.508867] [   2367]     0  2367     1469      104       32       72         0    53248        0             0 dmesg
>>> [ 7089.509482] [1842640]     0 1842640     1779      886      800       86         0    53248        0           250 551
>>> [ 7089.510087] [1842847]     0 1842847   858194   857584   857535       49         0  6922240        0           250 aio-dio-write-v
>>> [ 7089.510794] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/fstests-generic-551.scope,task=aio-dio-write-v,pid=1842847,uid=0
>>> [ 7089.511761] Out of memory: Killed process 1842847 (aio-dio-write-v) total-vm:3432776kB, anon-rss:3430140kB, file-rss:196kB, shmem-rss:0kB, UID:0 pgtables:6760kB oom_score_adj:250
>>> [ 7090.616260] run fstests generic/552 at 2025-06-16 09:52:49
>>>
>>> So, why do you want to skip it?
>>>
>>> I think Hugh's patch [1] on generic/551 is unrelated to the above. And maybe my
>>> VM just needs more memory to pass this test?
>>>
>>> [1] https://gitlab.com/da.gomez/xfstests-dev/-/commit/cfc6b431403123d70bf25842c80d6693f0c9ceb6
>>
>> My notes show that 551 takes hours on NFS, but I don't see any
>> explanation of why I added this test to my tmpfs expunge list. I
>> assume it is for the same reason. I don't recall seeing a crash.
> 
> What I recall now after checking some old pathes is that generic/551 was failing
> already for 6.8 [1] among with other tests, so I we added it as part of the
> 6.8 expunge list for baseline development.
> 
> [1]
> https://github.com/linux-kdevops/kdevops/blob/main/workflows/fstests/expunges/6.8.0-rc2/tmpfs/unassigned/tmpfs_default.txt
> 
> 
> However, I was looking into the oom-kill logs and see if I could make it pass
> by increasing VM memory. That didn't work for me, so I added swap and now the
> test passes.
> 
> [  302.910466] run fstests fstestsdone/000 at 2025-06-16 20:08:19
> [  321.826359] Adding 4194300k swap on /swapfile.  Priority:-2 extents:18
> across:8069116k
> [  333.521446] run fstests fstestsstart/000 at 2025-06-16 20:08:49
> [  333.953732] run fstests generic/551 at 2025-06-16 20:08:50
> [  549.240019] run fstests fstestsdone/000 at 2025-06-16 20:12:25
> 
> 
> I've used:
> * 8 GiB guest RAM
> * fstests repo including Hugh's patches:
> https://gitlab.com/da.gomez/xfstests-dev/-/tree/hughd/tmpfs-fixes?ref_type=heads
> * Add temporary swap:
> 
> fallocate -l 4G /swapfile
> chmod 600 /swapfile
> mkswap /swapfile
> swapon /swapfile
> mkswap: /swapfile: warning: wiping old swap signature.
> Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
> no label, UUID=f6cee4b9-900e-4980-89b7-f0ec7197909c
> 
> root@debian13-tmpfs-default:/data/fstests-install/xfstests# free -hm
>                total        used        free      shared  buff/cache   available
> Mem:           7.8Gi       335Mi       7.5Gi       740Ki        52Mi       7.4Gi
> Swap:          4.0Gi          0B       4.0Gi
> root@debian13-tmpfs-default:/data/fstests-install/xfstests#
> FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
> --test-section tmpfs_default generic/551
> ./oscheck.sh on Debian (13) on 6.12.31-amd64
> Running custom kernel: Linux debian13-tmpfs-default 6.12.31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.31-1 (2025-06-09) x86_64 GNU/Linux
> Testing section: tmpfs_default
> SECTION       -- tmpfs_default
> FSTYP         -- tmpfs
> PLATFORM      -- Linux/x86_64 debian13-tmpfs-default 6.12.31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.31-1 (2025-06-09)
> MKFS_OPTIONS  -- /media/scratch
> MOUNT_OPTIONS -- -o size=1088M,nr_inodes=272K /media/scratch /media/scratch
> 
> generic/551        215s
> Ran: generic/551
> Passed all 1 tests
> Xunit report: /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.12.31-amd64/tmpfs_default/result.xml
> 
> SECTION       -- tmpfs_default
> =========================
> Ran: generic/551
> Passed all 1 tests
> 
> Done
> 
> Assuming swap is the only thing needed to make the test pass, does it make
> sense then to add support in fstests/tmpfs in kdevops to make the test pass?

generic/551 comment says:

  Randomly direct AIO write&verify stress test

Does testing direct I/O on tmpfs add value? If it is quick to run, then
why not run it.


>>> And same question for generic/561, why do you want to skip it? I see the time
>>> spent for skipping the test is actually fine:
>>>
>>> [ 7103.693096] run fstests generic/559 at 2025-06-16 09:53:02
>>> [ 7104.356919] run fstests generic/560 at 2025-06-16 09:53:02
>>> [ 7105.154012] run fstests generic/561 at 2025-06-16 09:53:03
>>> [ 7105.614221] run fstests generic/562 at 2025-06-16 09:53:04
>>> [ 7106.056302] run fstests generic/563 at 2025-06-16 09:53:04
>>>
>>> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.notrun
>>> duperemove utility required, skipped this test
>>> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/tmpfs_default/generic/561.full
>>> umount: /media/scratch: not mounted.
>>
>> generic/561 is testing file de-dup, which tmpfs does not implement.
>>
>> generic/561 looks for the dupremove utility on the test system to
>> know whether to run the test. That's a poor check, say, if the test
>> system is used for testing other file systems, or dupremove is installed
>> by default.
> 
> We need to fix that in kdevops and then figure out if generic/561 applies or
> not.
> 
>>
>> Could be that 3b9f5fc7d7d8 ("common: call _require_scratch_dedupe from
>> _require_scratch_duperemove") fixes that so that 561 no longer needs
>> to be explicitly expunged for NFS and tmpfs.
>>
>>
> 
> The above logs are from an fstests deployed by kdevops which already has that
> commit.
> 
> git -C /data/fstests log --oneline -1
> 2cc8c822 (HEAD -> master, origin/master, origin/HEAD) fstests: btrfs: testcase
> for sysfs chunk_size attribute validation
> 
> So, I added duperemove package to the VM and run the test again:
> 
> [   14.841609] run fstests fstestsstart/000 at 2025-06-16 18:17:35
> [   16.365091] run fstests generic/561 at 2025-06-16 18:17:36
> [   17.141361] run fstests fstestsdone/000 at 2025-06-16 18:17:37
> 
> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/
> tmpfs_default/generic/561.notrun
> Dedupe not supported by scratch filesystem type: tmpfs
> 
> I think the correct path is to add duperemove as fstests workflow dependency to
> properly skip the test for tmpfs.

That sounds correct to me.


-- 
Chuck Lever

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-16 20:36           ` Chuck Lever
@ 2025-06-17  8:34             ` Daniel Gomez
  2025-06-17 13:43               ` Chuck Lever
  2025-06-26 19:10             ` Daniel Gomez
  1 sibling, 1 reply; 21+ messages in thread
From: Daniel Gomez @ 2025-06-17  8:34 UTC (permalink / raw)
  To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez



>> Assuming swap is the only thing needed to make the test pass, does it make
>> sense then to add support in fstests/tmpfs in kdevops to make the test pass?
> 
> generic/551 comment says:
> 
>   Randomly direct AIO write&verify stress test
> 
> Does testing direct I/O on tmpfs add value? If it is quick to run, then
> why not run it.

It's not a quick run after enabling swap:

generic/551        215s
Ran: generic/551
Passed all 1 tests

I don't know about the value for this test for tmpfs. I think it should be
tested as it's part of the suite.


BTW, I've just managed to succeed a generic/551 run without swap:

kdevops@d608703fcdd9-tmpfs-default:~$ uname -a
Linux d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025 x86_64 GNU/Linux
kdevops@d608703fcdd9-tmpfs-default:~$ free -hm
               total        used        free      shared  buff/cache   available
Mem:            31Gi       1.5Gi        29Gi       708Ki       239Mi        29Gi
Swap:             0B          0B          0B
kdevops@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests$ FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
--test-section tmpfs_default generic/551
Must run as root
kdevops@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests$ sudo su
root@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests# pwd
/data/fstests-install/xfstests
root@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests# FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
--test-section tmpfs_default generic/551
./oscheck.sh on Debian (13) on 6.16.0-rc2-00026-g9afe652958c3
Running custom kernel: Linux d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025 x86_64 GNU/Linux
Testing section: tmpfs_default
SECTION       -- tmpfs_default
FSTYP         -- tmpfs
PLATFORM      -- Linux/x86_64 d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025
MKFS_OPTIONS  -- /media/scratch
MOUNT_OPTIONS -- -o size=1G /media/scratch /media/scratch

generic/551 296s ...  250s
Ran: generic/551
Passed all 1 tests
Xunit report: /data/fstests-install/xfstests/results/d608703fcdd9-tmpfs-default/6.16.0-rc2-00026-g9afe652958c3/tmpfs_default/result.xml

SECTION       -- tmpfs_default
=========================
Ran: generic/551
Passed all 1 tests

Done


So, may be that the avail_mem in do_test() is not calculating the memory
given to the fs? I'll see if I can give that a try later.

For now, the above run succeeded in a VM with 32G of RAM. Monitoring the test
ram consumption I can see peaks of 10G. But I'd expect the test to adapt to the
resources available.

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-17  8:34             ` Daniel Gomez
@ 2025-06-17 13:43               ` Chuck Lever
  2025-06-21  7:47                 ` Daniel Gomez
  0 siblings, 1 reply; 21+ messages in thread
From: Chuck Lever @ 2025-06-17 13:43 UTC (permalink / raw)
  To: Daniel Gomez, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 6/17/25 4:34 AM, Daniel Gomez wrote:
> 
> 
>>> Assuming swap is the only thing needed to make the test pass, does it make
>>> sense then to add support in fstests/tmpfs in kdevops to make the test pass?
>>
>> generic/551 comment says:
>>
>>   Randomly direct AIO write&verify stress test
>>
>> Does testing direct I/O on tmpfs add value? If it is quick to run, then
>> why not run it.
> 
> It's not a quick run after enabling swap:
> 
> generic/551        215s
> Ran: generic/551
> Passed all 1 tests
> 
> I don't know about the value for this test for tmpfs. I think it should be
> tested as it's part of the suite.
> 
> 
> BTW, I've just managed to succeed a generic/551 run without swap:
> 
> kdevops@d608703fcdd9-tmpfs-default:~$ uname -a
> Linux d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025 x86_64 GNU/Linux
> kdevops@d608703fcdd9-tmpfs-default:~$ free -hm
>                total        used        free      shared  buff/cache   available
> Mem:            31Gi       1.5Gi        29Gi       708Ki       239Mi        29Gi
> Swap:             0B          0B          0B
> kdevops@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests$ FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
> --test-section tmpfs_default generic/551
> Must run as root
> kdevops@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests$ sudo su
> root@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests# pwd
> /data/fstests-install/xfstests
> root@d608703fcdd9-tmpfs-default:/data/fstests-install/xfstests# FSTYP=tmpfs ./oscheck.sh --print-start --print-done --journal 'False' \
> --test-section tmpfs_default generic/551
> ./oscheck.sh on Debian (13) on 6.16.0-rc2-00026-g9afe652958c3
> Running custom kernel: Linux d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025 x86_64 GNU/Linux
> Testing section: tmpfs_default
> SECTION       -- tmpfs_default
> FSTYP         -- tmpfs
> PLATFORM      -- Linux/x86_64 d608703fcdd9-tmpfs-default 6.16.0-rc2-00026-g9afe652958c3 #9 SMP PREEMPT_DYNAMIC Tue Jun 17 08:07:34 UTC 2025
> MKFS_OPTIONS  -- /media/scratch
> MOUNT_OPTIONS -- -o size=1G /media/scratch /media/scratch
> 
> generic/551 296s ...  250s
> Ran: generic/551
> Passed all 1 tests
> Xunit report: /data/fstests-install/xfstests/results/d608703fcdd9-tmpfs-default/6.16.0-rc2-00026-g9afe652958c3/tmpfs_default/result.xml
> 
> SECTION       -- tmpfs_default
> =========================
> Ran: generic/551
> Passed all 1 tests
> 
> Done
> 
> 
> So, may be that the avail_mem in do_test() is not calculating the memory
> given to the fs? I'll see if I can give that a try later.
> 
> For now, the above run succeeded in a VM with 32G of RAM. Monitoring the test
> ram consumption I can see peaks of 10G. But I'd expect the test to adapt to the
> resources available.

Good point: either the test should adapt, or tmpfs should adapt.


-- 
Chuck Lever

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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-17 13:43               ` Chuck Lever
@ 2025-06-21  7:47                 ` Daniel Gomez
  0 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-21  7:47 UTC (permalink / raw)
  To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 17/06/2025 15.43, Chuck Lever wrote:
> On 6/17/25 4:34 AM, Daniel Gomez wrote:
>>
>> So, may be that the avail_mem in do_test() is not calculating the memory
>> given to the fs? I'll see if I can give that a try later.

This turned out to be the issue.

>>
>> For now, the above run succeeded in a VM with 32G of RAM. Monitoring the test
>> ram consumption I can see peaks of 10G. But I'd expect the test to adapt to the
>> resources available.
> 
> Good point: either the test should adapt, or tmpfs should adapt.

Here the fix:
https://lore.kernel.org/all/20250618-fix-tmpfs-generic-551-v1-1-271027c36dfc@samsung.com/

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

* Re: [PATCH 00/10] Extend kdevops-ci to support more workflows
  2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
                   ` (9 preceding siblings ...)
  2025-06-15  9:58 ` [PATCH 10/10] workflows: add support to change kdevops repo in guests via cli Daniel Gomez
@ 2025-06-26 18:59 ` Daniel Gomez
  10 siblings, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-26 18:59 UTC (permalink / raw)
  To: Luis Chamberlain, Daniel Gomez; +Cc: kdevops, Chuck Lever


On Sun, 15 Jun 2025 11:58:08 +0200, Daniel Gomez wrote:
> This patch series includes Ansible fixes identified while running the
> kdevops-ci GitHub Runner and testing the CI_WORKFLOW setup with the
> following defconfigs: linux-mm-kpd, linux-modules-kpd, blktests, and
> tmpfs.
> 
> As part of these fixes, support for tmpfs CI defconfigs is added. I'm
> now running all of the above workflows daily, although archiving results
> and dashboard are still on my TODO list.
> 
> [...]

Applied, thanks!

[01/10] .ci: blktests: add 1 section only targets
        commit: 8e46f851d791829884317116d24d6b391a5f3f79
[02/10] defconfigs: add tmpfs support
        commit: 9162134d8415c3510c0ce46e9eba814a6c14fb6d
[03/10] .ci: add tmpfs support
        commit: bf5a6b3d81e270424b799b82342aa5af1790509a
[04/10] defconfigs: blktests: add blktests_meta support
        commit: 19ee5b8758d8f3f0b87e63aa7913c7b500b6ee3c
[05/10] gen_nodes: selftests: fix hosts names generation
        commit: f501cf876a7b66492bb0705667e262b7f4f648d0
[06/10] gen_hosts: selftests: fix hosts names generation
        commit: 51e335779c33a78e5fc3033cf6850a161178c459
[07/10] fstests: fix ansible range type error
        commit: 8183167ea0e6372a49af13b4fbe1dada22233576
[08/10] selftests: kmod: add timeout makefile parameter cli support
        commit: 5f1cbad24499ed1df7de9d1f1c777ad4b60d8596
[09/10] fstests: tmpfs: expunges: testing
        commit: 42da490018e06d79fa229952ad924ff9c2532a87
[10/10] workflows: add support to change kdevops repo in guests via cli
        commit: 9b7f4847e79d78761d8926b3198610df948d0f26

Best regards,
-- 
Daniel Gomez <da.gomez@samsung.com>


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

* Re: [PATCH 09/10] fstests: tmpfs: expunges: testing
  2025-06-16 20:36           ` Chuck Lever
  2025-06-17  8:34             ` Daniel Gomez
@ 2025-06-26 19:10             ` Daniel Gomez
  1 sibling, 0 replies; 21+ messages in thread
From: Daniel Gomez @ 2025-06-26 19:10 UTC (permalink / raw)
  To: Chuck Lever, Luis Chamberlain; +Cc: kdevops, Daniel Gomez

On 16/06/2025 22.36, Chuck Lever wrote:
> On 6/16/25 4:24 PM, Daniel Gomez wrote:
>>
>>
>> On 16/06/2025 16.31, Chuck Lever wrote:
>>> On 6/16/25 6:41 AM, Daniel Gomez wrote:
>>>>
>>>> On 15/06/2025 18.18, Chuck Lever wrote:
>>>>> On 6/15/25 5:58 AM, Daniel Gomez wrote:
>>> generic/561 is testing file de-dup, which tmpfs does not implement.
>>>
>>> generic/561 looks for the dupremove utility on the test system to
>>> know whether to run the test. That's a poor check, say, if the test
>>> system is used for testing other file systems, or dupremove is installed
>>> by default.
>>
>> We need to fix that in kdevops and then figure out if generic/561 applies or
>> not.
>>
>>>
>>> Could be that 3b9f5fc7d7d8 ("common: call _require_scratch_dedupe from
>>> _require_scratch_duperemove") fixes that so that 561 no longer needs
>>> to be explicitly expunged for NFS and tmpfs.
>>>
>>>
>>
>> The above logs are from an fstests deployed by kdevops which already has that
>> commit.
>>
>> git -C /data/fstests log --oneline -1
>> 2cc8c822 (HEAD -> master, origin/master, origin/HEAD) fstests: btrfs: testcase
>> for sysfs chunk_size attribute validation
>>
>> So, I added duperemove package to the VM and run the test again:
>>
>> [   14.841609] run fstests fstestsstart/000 at 2025-06-16 18:17:35
>> [   16.365091] run fstests generic/561 at 2025-06-16 18:17:36
>> [   17.141361] run fstests fstestsdone/000 at 2025-06-16 18:17:37
>>
>> cat /data/fstests-install/xfstests/results/debian13-tmpfs-default/6.16.0-rc2/
>> tmpfs_default/generic/561.notrun
>> Dedupe not supported by scratch filesystem type: tmpfs
>>
>> I think the correct path is to add duperemove as fstests workflow dependency to
>> properly skip the test for tmpfs.
> 
> That sounds correct to me.

Added duperemove package to fstests workflow:
ac918af2fb3b fstests: debian: add duperemove dependency

https://github.com/linux-kdevops/kdevops/commit/ac918af2fb3bbd33c81281073f46f84025cffa5a

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

end of thread, other threads:[~2025-06-26 19:10 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-15  9:58 [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez
2025-06-15  9:58 ` [PATCH 01/10] .ci: blktests: add 1 section only targets Daniel Gomez
2025-06-15  9:58 ` [PATCH 02/10] defconfigs: add tmpfs support Daniel Gomez
2025-06-15  9:58 ` [PATCH 03/10] .ci: " Daniel Gomez
2025-06-15  9:58 ` [PATCH 04/10] defconfigs: blktests: add blktests_meta support Daniel Gomez
2025-06-15  9:58 ` [PATCH 05/10] gen_nodes: selftests: fix hosts names generation Daniel Gomez
2025-06-15  9:58 ` [PATCH 06/10] gen_hosts: " Daniel Gomez
2025-06-15  9:58 ` [PATCH 07/10] fstests: fix ansible range type error Daniel Gomez
2025-06-15  9:58 ` [PATCH 08/10] selftests: kmod: add timeout makefile parameter cli support Daniel Gomez
2025-06-15  9:58 ` [PATCH 09/10] fstests: tmpfs: expunges: testing Daniel Gomez
2025-06-15 16:18   ` Chuck Lever
2025-06-16 10:41     ` Daniel Gomez
2025-06-16 14:31       ` Chuck Lever
2025-06-16 20:24         ` Daniel Gomez
2025-06-16 20:36           ` Chuck Lever
2025-06-17  8:34             ` Daniel Gomez
2025-06-17 13:43               ` Chuck Lever
2025-06-21  7:47                 ` Daniel Gomez
2025-06-26 19:10             ` Daniel Gomez
2025-06-15  9:58 ` [PATCH 10/10] workflows: add support to change kdevops repo in guests via cli Daniel Gomez
2025-06-26 18:59 ` [PATCH 00/10] Extend kdevops-ci to support more workflows Daniel Gomez

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