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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 15 Dec 2022 08:43:40 +1100

Hi all,

On Mon, 14 Nov 2022 12:16:06 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> On Fri, 11 Nov 2022 10:40:09 +1100 Stephen Rothwell <[email-masked]> 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.

This is now a conflict between the perf tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell