lkml.org 
[lkml]   [2019]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 1/3] perf report: Change sort order by a specified event in group
From
Date


On 12/11/2019 8:14 PM, Jiri Olsa wrote:
> On Wed, Dec 11, 2019 at 08:01:44PM +0800, Jin, Yao wrote:
>>
>>
>> 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. :)
>
> aah, I missed it's actualy == used in the first one ;-)
>
> why don't you just call it directly?
>
> ret = field_cmp(fields_a[idx], fields_b[idx])
> if (ret)
> goto out;
>
> jirka
>

Oh, yes, we can use simpler code. For example,

if (idx >= 1 && idx < nr_members) {
ret = field_cmp(fields_a[idx], fields_b[idx]);
if (ret)
goto out;
}

Thanks
Jin Yao

\
 
 \ /
  Last update: 2019-12-11 13:37    [W:0.602 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site