Commit de3ca8e4 authored by Peter Xu's avatar Peter Xu Committed by Linus Torvalds
Browse files

userfaultfd/selftests: only dump counts if mode enabled

WP and MINOR modes are conditionally enabled on specific memory types.
This patch avoids dumping tons of zeros for those cases when the modes are
not supported at all.

Link: https://lkml.kernel.org/r/20210412232753.1012412-5-peterx@redhat.com


Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
Reviewed-by: default avatarAxel Rasmussen <axelrasmussen@google.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: "Dr . David Alan Gilbert" <dgilbert@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Joe Perches <joe@perches.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Lokesh Gidra <lokeshgidra@google.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: Oliver Upton <oupton@google.com>
Cc: Shaohua Li <shli@fb.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Wang Qing <wangqing@vivo.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4e08e18a
Loading
Loading
Loading
Loading
+20 −10
Original line number Original line Diff line number Diff line
@@ -171,16 +171,26 @@ static void uffd_stats_report(struct uffd_stats *stats, int n_cpus)
		minor_total += stats[i].minor_faults;
		minor_total += stats[i].minor_faults;
	}
	}


	printf("userfaults: %llu missing (", miss_total);
	printf("userfaults: ");
	if (miss_total) {
		printf("%llu missing (", miss_total);
		for (i = 0; i < n_cpus; i++)
		for (i = 0; i < n_cpus; i++)
			printf("%lu+", stats[i].missing_faults);
			printf("%lu+", stats[i].missing_faults);
	printf("\b), %llu wp (", wp_total);
		printf("\b) ");
	}
	if (wp_total) {
		printf("%llu wp (", wp_total);
		for (i = 0; i < n_cpus; i++)
		for (i = 0; i < n_cpus; i++)
			printf("%lu+", stats[i].wp_faults);
			printf("%lu+", stats[i].wp_faults);
	printf("\b), %llu minor (", minor_total);
		printf("\b) ");
	}
	if (minor_total) {
		printf("%llu minor (", minor_total);
		for (i = 0; i < n_cpus; i++)
		for (i = 0; i < n_cpus; i++)
			printf("%lu+", stats[i].minor_faults);
			printf("%lu+", stats[i].minor_faults);
	printf("\b)\n");
		printf("\b)");
	}
	printf("\n");
}
}


static int anon_release_pages(char *rel_area)
static int anon_release_pages(char *rel_area)