Messages in this thread | | | Date | Thu, 19 Oct 2017 06:55:19 -0700 | From | Andi Kleen <> | Subject | Re: [PATCH v6 1/6] perf report: properly handle branch count in match_chain |
| |
On Thu, Oct 19, 2017 at 12:59:14PM +0200, Milian Wolff wrote: > On Donnerstag, 19. Oktober 2017 00:41:04 CEST Andi Kleen wrote: > > Milian Wolff <milian.wolff@kdab.com> writes: > > > +static enum match_result match_address_dso(struct dso *left_dso, u64 > > > left_ip, + struct dso *right_dso, u64 right_ip) > > > +{ > > > + if (left_dso == right_dso && left_ip == right_ip) > > > + return MATCH_EQ; > > > + else if (left_ip < right_ip) > > > + return MATCH_LT; > > > + else > > > + return MATCH_GT; > > > +} > > > > So why does only the first case check the dso? Does it not matter > > for the others? > > > > Either should be checked by none or by all. > > I don't see why it should be checked. It is only required to prevent two > addresses to be considered equal while they are not. So only the one check is > required, otherwise we return either LT or GT.
When the comparison is always in the same process (which I think is not the case) just checking the addresses is sufficient. If they are not then you always need to check the DSO and only compare inside the same DSO.
-Andi
| |