Re: linux-next: manual merge of the bpf-next tree with the perf tree

From: Stephen Rothwell
Date: Sun Nov 13 2022 - 20:16:19 EST


Hi all,

On Fri, 11 Nov 2022 10:40:09 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Today's linux-next merge of the bpf-next tree got a conflict in:
>
> tools/perf/util/stat.c
>
> between commit:
>
> 8b76a3188b85 ("perf stat: Remove unused perf_counts.aggr field")
>
> from the perf tree and commit:
>
> c302378bc157 ("libbpf: Hashmap interface update to allow both long and void* keys/values")
>
> from the bpf-next tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc tools/perf/util/stat.c
> index 3a432a949d46,c0656f85bfa5..000000000000
> --- a/tools/perf/util/stat.c
> +++ b/tools/perf/util/stat.c
> @@@ -318,7 -258,27 +318,7 @@@ void evlist__copy_prev_raw_counts(struc
> evsel__copy_prev_raw_counts(evsel);
> }
>
> - static size_t pkg_id_hash(const void *__key, void *ctx __maybe_unused)
> -void evlist__save_aggr_prev_raw_counts(struct evlist *evlist)
> -{
> - struct evsel *evsel;
> -
> - /*
> - * To collect the overall statistics for interval mode,
> - * we copy the counts from evsel->prev_raw_counts to
> - * evsel->counts. The perf_stat_process_counter creates
> - * aggr values from per cpu values, but the per cpu values
> - * are 0 for AGGR_GLOBAL. So we use a trick that saves the
> - * previous aggr value to the first member of perf_counts,
> - * then aggr calculation in process_counter_values can work
> - * correctly.
> - */
> - evlist__for_each_entry(evlist, evsel) {
> - *perf_counts(evsel->prev_raw_counts, 0, 0) =
> - evsel->prev_raw_counts->aggr;
> - }
> -}
> -
> + static size_t pkg_id_hash(long __key, void *ctx __maybe_unused)
> {
> uint64_t *key = (uint64_t *) __key;
>

This is now a conflict between perf tree and the net-next tree.

--
Cheers,
Stephen Rothwell

Attachment: pgphKHhO3NvpA.pgp
Description: OpenPGP digital signature