On 9/11/2017 9:33 AM, Jin, Yao wrote: > > > On 9/8/2017 9:43 PM, Arnaldo Carvalho de Melo wrote: >> Em Wed, Aug 16, 2017 at 06:18:33PM +0800, Jin Yao escreveu: >>> An issue is found during using perf annotate. >>> >>> perf record -e cycles,branches ... >>> perf annotate main --stdio >>> >>> The result only shows cycles. It should show both cycles and >>> branches on the left side. It works with "--group", but need >>> this to work even without groups. >>> >>> In current design, the hists is per event. So we need a new >>> hists to manage the samples for multiple events and use a new >>> hist_event data structure to save the map/symbol information >>> for per event. >> Humm, why do we need another hists? Don't we have one per evsel, don't >> we have a evlist from where to get all of those evsels, can't we just >> use that to add one column per evsel? >> >> - Arnaldo >> > > Hi Arnaldo, > > I'm considering a case. > > Suppose we sample 2 events ("branches" and "cache-misses"). The samples of > "branches" are hit in function A and the samples of "cache-misses" are hit in > function B. > > The branches evsel has one hists and cache-misses evsel has another hists. > > The hists of branches evsel has one hist-entry which stands for the function > A symbol. The hists of cache-misses evsel has one hist-entry which stands for > the function B symbol. > > If we start to show the instructions in function B from cache-misses evsel, > we will lose the function A. > > Because even if we get the branches evsel from the link in cache-misses > evsel, but the function A is before function B and function B has been > displayed yet, so the function A is lost. > > Considering the number of events can be greater than 2, the code will be much > more complicated. So using a global hists should be an easy solution. > > Thanks > Jin Yao >
Hi Arnaldo, Could the solution of using a new hists for multiple events be accepted? Or anything I should update in the patches? Thanks Jin Yao