• David Hildenbrand's avatar
    selftests/mm: cow: print ksft header before printing anything else · a6fcd57c
    David Hildenbrand authored
    Doing a ksft_print_msg() before the ksft_print_header() seems to confuse
    the ksft framework in a strange way: running the test on the cmdline
    results in the expected output.
    
    But piping the output somewhere else, results in some odd output,
    whereby we repeatedly get the same info printed:
    	# [INFO] detected THP size: 2048 KiB
    	# [INFO] detected hugetlb page size: 2048 KiB
    	# [INFO] detected hugetlb page size: 1048576 KiB
    	# [INFO] huge zeropage is enabled
    	TAP version 13
    	1..190
    	# [INFO] Anonymous memory tests in private mappings
    	# [RUN] Basic COW after fork() ... with base page
    	# [INFO] detected THP size: 2048 KiB
    	# [INFO] detected hugetlb page size: 2048 KiB
    	# [INFO] detected hugetlb page size: 1048576 KiB
    	# [INFO] huge zeropage is enabled
    	TAP version 13
    	1..190
    	# [INFO] Anonymous memory tests in private mappings
    	# [RUN] Basic COW after fork() ... with base page
    	ok 1 No leak from parent into child
    	# [RUN] Basic COW after fork() ... with swapped out base page
    	# [INFO] detected THP size: 2048 KiB
    	# [INFO] detected hugetlb page size: 2048 KiB
    	# [INFO] detected hugetlb page size: 1048576 KiB
    	# [INFO] huge zeropage is enabled
    
    Doing the ksft_print_header() first seems to resolve that and gives us
    the output we expect:
    	TAP version 13
    	# [INFO] detected THP size: 2048 KiB
    	# [INFO] detected hugetlb page size: 2048 KiB
    	# [INFO] detected hugetlb page size: 1048576 KiB
    	# [INFO] huge zeropage is enabled
    	1..190
    	# [INFO] Anonymous memory tests in private mappings
    	# [RUN] Basic COW after fork() ... with base page
    	ok 1 No leak from parent into child
    	# [RUN] Basic COW after fork() ... with swapped out base page
    	ok 2 No leak from parent into child
    	# [RUN] Basic COW after fork() ... with THP
    	ok 3 No leak from parent into child
    	# [RUN] Basic COW after fork() ... with swapped-out THP
    	ok 4 No leak from parent into child
    	# [RUN] Basic COW after fork() ... with PTE-mapped THP
    	ok 5 No leak from parent into child
    
    Link: https://lkml.kernel.org/r/20231206103558.38040-1-david@redhat.com
    Fixes: f4b5fd69 ("selftests/vm: anon_cow: THP tests")
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reported-by: default avatarNico Pache <npache@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    a6fcd57c
cow.c 41.2 KB