Skip to content

pmem2_mem_ext failure because of Valgrind not supporting avx512f. #5640

@grom72

Description

@grom72

ISSUE: pmem2_mem_ext/TEST[1-4]: failed under valgrind (self-hosted, rhel, RUNTESTS.py --force-enable pmemcheck)

Environment Information

  • PMDK package version(s): 37292d4
  • OS(es) version(s): Rocky Linux 9.1 (Blue Onyx)
  • ndctl version(s): 71.1
  • kernel version(s): 5.14.0-162.6.1.el9_1.x86_64
  • compiler, libraries, packaging and other related tools version(s):

Please provide a reproduction of the bug:

pmem2_mem_ext/TEST1: failed under valgrind (self-hosted, rhel, RUNTESTS.py --force-enable pmemcheck)
with error message:

pmem2_mem_ext/TEST1: FAILED	(short/debug/pmemcheck/page/wc_workaround: on/variant: avx512f)
Pattern: memmove_mov_avx512f occurs 0 times. One expected. Type: C Flag id: 0
pmem2_mem_ext/TEST1: FAILED	(short/debug/pmemcheck/page/wc_workaround: off/variant: avx512f)
Pattern: memmove_mov_avx512f occurs 0 times. One expected. Type: C Flag id: 0
pmem2_mem_ext/TEST1: FAILED	(short/debug/pmemcheck/page/wc_workaround: default/variant: avx512f)
Pattern: memmove_mov_avx512f occurs 0 times. One expected. Type: C Flag id: 0

## How often bug is revealed: (always, often, rare):  always

<!-- describe special circumstances in section above -->

## Actual behavior:

pmem2_mem_ext/TEST4: SETUP (short/debug/pmemcheck/byte/wc_workaround: off/variant: avx512f)
Last 9 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmemcheck4.log below (whole file has 9 lines):
==1341046== pmemcheck-1.0, a simple persistent store checker
==1341046== Copyright (c) 2014-2020, Intel Corporation
==1341046== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==1341046== Command: /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
==1341046== Parent PID: 1320522
==1341046==
==1341046==
==1341046== Number of stores not made persistent: 0
==1341046== ERROR SUMMARY: 0 errors
Last 30 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_4.log below (whole file has 55 lines):
: <3> [init.c:597 pmem2_arch_init] using movnt SSE2
: <3> [map_posix.c:293 pmem2_map_new] cfg 0x4232f50 src 0x4232fa0 map_ptr 0x1ffefffa40
: <3> [source_posix.c:143 pmem2_source_alignment] type 2
: <4> [source_posix.c:173 pmem2_source_alignment] alignment 4096
: <3> [source_posix.c:92 pmem2_source_size] type 2
: <4> [source_posix.c:132 pmem2_source_size] file length 4194304
: <4> [map_posix.c:140 map_reserve] system choice 0x7e09000
: <4> [map_posix.c:149 map_reserve] hint 0x8000000
: <15> [map_posix.c:204 file_map] reserve 0x8000000 len 4194304 proto 3 flags 10 fd 8 offset 0 map_sync 0x1ffefff97f
: <4> [map_posix.c:228 file_map] mmap with MAP_SYNC succeeded
: <3> [map_posix.c:477 pmem2_map_new] mapped at 0x8000000
: <15> [auto_flush_linux.c:140 pmem2_auto_flush]
: <15> [auto_flush_linux.c:175 pmem2_auto_flush] Start traversing region: /sys/bus/nd/devices/region0
: <3> [auto_flush_linux.c:86 check_domain_in_region] region_path: /sys/bus/nd/devices/region0
: <3> [auto_flush_linux.c:30 check_cpu_cache] domain_path: /sys/bus/nd/devices/region0/persistence_domain
: <15> [auto_flush_linux.c:64 check_cpu_cache] detected persistent_domain: memory_controller
: <15> [auto_flush_linux.c:69 check_cpu_cache] cpu_cache not in persistent_domain: /sys/bus/nd/devices/region0/persistence_domain
: <3> [map_posix.c:522 pmem2_map_new] using libpmem2 default async mover
: <3> [mover.c:181 mover_new] map 0x42344f0, vdm 0x1ffefff958
: <6> [ravl.c:395 ravl_emplace]
: <3> [map.c:44 pmem2_map_get_size] map 0x42344f0
: <3> [map.c:32 pmem2_map_get_address] map 0x42344f0
: <15> [memcpy_t_sse2.c:218 memmove_mov_sse2_empty] dest 0x8000400 src 0x8000000 len 1024
: <15> [persist.c:125 pmem2_drain]
: <15> [init.c:26 memory_barrier]
: <3> [map_posix.c:580 pmem2_map_delete] map_ptr 0x1ffefffa40
: <6> [ravl.c:526 ravl_find]
: <6> [ravl.c:526 ravl_find]
: <6> [ravl.c:547 ravl_remove]
: <3> [libpmem2.c:44 libpmem2_fini]
Last 3 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/out4.log below (whole file has 3 lines):
pmem2_mem_ext/TEST4: START: pmem2_mem_ext default avx avx512f movdir64b
/home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
pmem2_mem_ext/TEST4: DONE
Last 0 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/err4.log below (whole file has 0 lines):
Last 3 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/trace4.log below (whole file has 3 lines):
{pmem2_mem_ext.c:86 main} pmem2_mem_ext/TEST4: START: pmem2_mem_ext default avx avx512f movdir64b
/home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
{pmem2_mem_ext.c:143 main} pmem2_mem_ext/TEST4: DONE
pmem2_mem_ext/TEST4: FAILED (short/debug/pmemcheck/byte/wc_workaround: off/variant: avx512f)
Pattern: memmove_mov_avx512f occurs 0 times. One expected. Type: C Flag id: 0
pmem2_mem_ext/TEST4: SETUP (short/debug/pmemcheck/byte/wc_workaround: default/variant: sse2)
pmem2_mem_ext/TEST4: PASS [06.076 s]
pmem2_mem_ext/TEST4: SETUP (short/debug/pmemcheck/byte/wc_workaround: default/variant: avx)
pmem2_mem_ext/TEST4: PASS [06.150 s]
pmem2_mem_ext/TEST4: SETUP (short/debug/pmemcheck/byte/wc_workaround: default/variant: avx512f)
Last 9 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmemcheck4.log below (whole file has 9 lines):
==1341106== pmemcheck-1.0, a simple persistent store checker
==1341106== Copyright (c) 2014-2020, Intel Corporation
==1341106== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==1341106== Command: /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
==1341106== Parent PID: 1320522
==1341106==
==1341106==
==1341106== Number of stores not made persistent: 0
==1341106== ERROR SUMMARY: 0 errors
Last 30 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_4.log below (whole file has 54 lines):
: <3> [init.c:597 pmem2_arch_init] using movnt SSE2
: <3> [map_posix.c:293 pmem2_map_new] cfg 0x4232f50 src 0x4232fa0 map_ptr 0x1ffefffa60
: <3> [source_posix.c:143 pmem2_source_alignment] type 2
: <4> [source_posix.c:173 pmem2_source_alignment] alignment 4096
: <3> [source_posix.c:92 pmem2_source_size] type 2
: <4> [source_posix.c:132 pmem2_source_size] file length 4194304
: <4> [map_posix.c:140 map_reserve] system choice 0x7e09000
: <4> [map_posix.c:149 map_reserve] hint 0x8000000
: <15> [map_posix.c:204 file_map] reserve 0x8000000 len 4194304 proto 3 flags 10 fd 8 offset 0 map_sync 0x1ffefff99f
: <4> [map_posix.c:228 file_map] mmap with MAP_SYNC succeeded
: <3> [map_posix.c:477 pmem2_map_new] mapped at 0x8000000
: <15> [auto_flush_linux.c:140 pmem2_auto_flush]
: <15> [auto_flush_linux.c:175 pmem2_auto_flush] Start traversing region: /sys/bus/nd/devices/region0
: <3> [auto_flush_linux.c:86 check_domain_in_region] region_path: /sys/bus/nd/devices/region0
: <3> [auto_flush_linux.c:30 check_cpu_cache] domain_path: /sys/bus/nd/devices/region0/persistence_domain
: <15> [auto_flush_linux.c:64 check_cpu_cache] detected persistent_domain: memory_controller
: <15> [auto_flush_linux.c:69 check_cpu_cache] cpu_cache not in persistent_domain: /sys/bus/nd/devices/region0/persistence_domain
: <3> [map_posix.c:522 pmem2_map_new] using libpmem2 default async mover
: <3> [mover.c:181 mover_new] map 0x42344f0, vdm 0x1ffefff978
: <6> [ravl.c:395 ravl_emplace]
: <3> [map.c:44 pmem2_map_get_size] map 0x42344f0
: <3> [map.c:32 pmem2_map_get_address] map 0x42344f0
: <15> [memcpy_t_sse2.c:218 memmove_mov_sse2_empty] dest 0x8000400 src 0x8000000 len 1024
: <15> [persist.c:125 pmem2_drain]
: <15> [init.c:26 memory_barrier]
: <3> [map_posix.c:580 pmem2_map_delete] map_ptr 0x1ffefffa60
: <6> [ravl.c:526 ravl_find]
: <6> [ravl.c:526 ravl_find]
: <6> [ravl.c:547 ravl_remove]
: <3> [libpmem2.c:44 libpmem2_fini]
Last 3 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/out4.log below (whole file has 3 lines):
pmem2_mem_ext/TEST4: START: pmem2_mem_ext default avx avx512f movdir64b
/home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
pmem2_mem_ext/TEST4: DONE
Last 0 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/err4.log below (whole file has 0 lines):
Last 3 lines of /home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/trace4.log below (whole file has 3 lines):
{pmem2_mem_ext.c:86 main} pmem2_mem_ext/TEST4: START: pmem2_mem_ext default avx avx512f movdir64b
/home/test-user/actions-runner/_work/pmdk/pmdk/src/test/pmem2_mem_ext/pmem2_mem_ext /mnt/pmem0/pmem2_mem_ext_4/testfile C 1024 0
{pmem2_mem_ext.c:143 main} pmem2_mem_ext/TEST4: DONE
pmem2_mem_ext/TEST4: FAILED (short/debug/pmemcheck/byte/wc_workaround: default/variant: avx512f)

## Expected behavior:

<!-- fill this out -->

## Details

<!-- fill this out -->

## Additional information about Priority and Help Requested:

Are you willing to submit a pull request with a proposed change? (Yes, No)  <!-- check one if possible -->

Requested priority: (Showstopper, High, Medium, Low)                        <!-- check one if possible -->

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions