Messages in this thread | | | Subject | Re: [PATCH v2 4/7] perf diff: Use hists to manage basic blocks per symbol | From | "Jin, Yao" <> | Date | Tue, 11 Jun 2019 10:22:46 +0800 |
| |
On 6/8/2019 7:41 PM, Jin, Yao wrote: > > > On 6/5/2019 7:44 PM, Jiri Olsa wrote: >> On Mon, Jun 03, 2019 at 10:36:14PM +0800, Jin Yao wrote: >> >> SNIP >> >>> diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h >>> index 43623fa..d1641da 100644 >>> --- a/tools/perf/util/sort.h >>> +++ b/tools/perf/util/sort.h >>> @@ -79,6 +79,9 @@ struct hist_entry_diff { >>> /* HISTC_WEIGHTED_DIFF */ >>> s64 wdiff; >>> + >>> + /* PERF_HPP_DIFF__CYCLES */ >>> + s64 cycles; >>> }; >>> }; >>> @@ -143,6 +146,9 @@ struct hist_entry { >>> struct branch_info *branch_info; >>> long time; >>> struct hists *hists; >>> + void *block_hists; >>> + int block_idx; >>> + int block_num; >>> struct mem_info *mem_info; >>> struct block_info *block_info; >> >> could you please not add the new block* stuff in here, >> and instead use the "c2c model" and use yourr own struct >> on top of hist_entry? we are trying to librarize this >> stuff and keep only necessary things in here.. >> >> you're already using hist_entry_ops, so should be easy >> >> something like: >> >> struct block_hist_entry { >> void *block_hists; >> int block_idx; >> int block_num; >> struct block_info *block_info; >> >> struct hist_entry he; >> }; >> >> >> >> jirka >> > > Hi Jiri, > > After more considerations, maybe I can't move these stuffs from > hist_entry to block_hist_entry. > > Actually we use 2 kinds of hist_entry in this patch series. On kind of > hist_entry is for symbol/function. The other kind of hist_entry is for > basic block. > > @@ -143,6 +146,9 @@ struct hist_entry { > struct branch_info *branch_info; > long time; > struct hists *hists; > + void *block_hists; > + int block_idx; > + int block_num; > struct mem_info *mem_info; > struct block_info *block_info; > > The above hist_entry is actually for symbol/function. This patch series > collects all basic blocks in a symbol/function, so it needs a hists in > struct hist_entry (block_hists) to point to the hists of basic blocks. > > Correct me if I'm wrong. > > Thanks > Jin Yao >
Hi Jiri,
Either adding a new pointer 'priv' in 'struct map_symbol'?
struct map_symbol { struct map *map; struct symbol *sym; + void *priv; };
We create a struct outside and assign the pointer to priv. Logically it should make sense since the symbol/function may have private data for processing.
Any idea?
Thanks Jin Yao
| |