Alexey Budankov <alexey.budan...@linux.intel.com> writes: > On 30.08.2017 13:18, Alexander Shishkin wrote: >> Alexey Budankov <alexey.budan...@linux.intel.com> writes: >> >>>>> Iterating cpu specific subtree like this: >>>>> >>>>> #define for_each_group_event(event, group, cpu, pmu, field) \ >>>>> for (event = rb_entry_safe(group_first(group, cpu, pmu), \ >>>>> typeof(*event), field); \ >>>>> event && event->cpu == cpu && event->pmu == pmu; \ >>>>> event = rb_entry_safe(rb_next(&event->field), \ >>>>> typeof(*event), field)) >>>> >>>> Afaict, this assumes that you are also ordering on event->pmu, which >>>> should be reflected in your _less function. And also assuming that >>>> group_first() is doing the right thing. Can we see the code? >>> >>> I didn't do ordering by PMU for this patch set. Yet more I implemented >>> groups_first() like this: >> >> Your iterator (quoted above) begs to differ. > > What do you specifically mean? I am doing iterations like this:
I mean the code that you've shown before, which is quoted above. It's difficult to tell why something's not working if you don't show the code. Regards, -- Alex