Re: [RFC PATCH v3 6/6] [PATCH 6/6] mm: add tracing for VMA merges

From: Steven Rostedt
Date: Wed May 25 2022 - 10:07:27 EST


On Mon, 16 May 2022 14:54:05 +0200
Jakub Matěna <matenajakub@xxxxxxxxx> wrote:

> + TP_fast_assign(
> + __entry->merged = merged == 0;
> + __entry->predecessor_different_av = merge_prev;
> + __entry->successor_different_av = merge_next;
> + __entry->predecessor_with_successor_different_av = merge_both;


> + __entry->same_count = (merge_prev == AV_MERGE_SAME) +
> + (merge_next == AV_MERGE_SAME) +
> + (merge_both == AV_MERGE_SAME);
> + __entry->diff_count = (merge_prev == AV_MERGE_DIFFERENT) +
> + (merge_next == AV_MERGE_DIFFERENT) +
> + (merge_both == AV_MERGE_DIFFERENT);
> + __entry->failed_count = (merge_prev == AV_MERGE_FAILED) +
> + (merge_next == AV_MERGE_FAILED) +
> + (merge_both == AV_MERGE_FAILED);

The above looks like it can be moved into the TP_printk(), as you have the
merge_prev, next and both saved already. Why waste more ring buffer space
and execution time for information that can be derived at the time of
reading the trace event?

-- Steve


> + ),
> +
> + TP_printk("merged=%d predecessor=%s successor=%s predecessor_with_successor=%s same_count=%d diff_count=%d failed_count=%d",
> + __entry->merged,
> + __print_symbolic(__entry->predecessor_different_av, AV_MERGE_TYPES),
> + __print_symbolic(__entry->successor_different_av, AV_MERGE_TYPES),
> + __print_symbolic(__entry->predecessor_with_successor_different_av, AV_MERGE_TYPES),
> + __entry->same_count, __entry->diff_count, __entry->failed_count)
> +
> +);
> +