Messages in this thread | | | Subject | Re: [PATCH v2 1/3] perf report: Change sort order by a specified event in group | From | "Jin, Yao" <> | Date | Wed, 11 Dec 2019 20:01:44 +0800 |
| |
On 12/11/2019 7:38 PM, Jiri Olsa wrote: > On Wed, Dec 11, 2019 at 03:30:34PM +0800, Jin Yao wrote: > > SNIP > >> + >> +static int __hpp__group_sort_idx(struct hist_entry *a, struct hist_entry *b, >> + hpp_field_fn get_field, int idx) >> +{ >> + struct evsel *evsel = hists_to_evsel(a->hists); >> + u64 *fields_a, *fields_b; >> + int cmp, nr_members, ret, i; >> + >> + cmp = field_cmp(get_field(a), get_field(b)); >> + if (!perf_evsel__is_group_event(evsel)) >> + return cmp; >> + >> + nr_members = evsel->core.nr_members; >> + ret = pair_fields_alloc(a, b, get_field, nr_members, >> + &fields_a, &fields_b); >> + if (ret) { >> + ret = cmp; >> + goto out; >> + } >> + >> + for (i = 1; i < nr_members; i++) { >> + if (i == idx) { >> + ret = field_cmp(fields_a[i], fields_b[i]); >> + if (ret) >> + goto out; >> + } >> + } >> + >> + if (cmp) { >> + ret = cmp; >> + goto out; >> + } >> + >> + for (i = 1; i < nr_members; i++) { >> + if (i != idx) { >> + ret = field_cmp(fields_a[i], fields_b[i]); >> + if (ret) >> + goto out; >> + } > > hi, > I'm missing why we compare the fields for 2nd time in here > > thanks, > jirka >
Hi,
I think we may continue comparing the remaining of fields if the index field is equal. :)
Thanks Jin Yao
| |