Messages in this thread | | | From | Anup Sharma <> | Date | Tue, 11 Jul 2023 03:31:10 +0530 | Subject | Re: [PATCH v2 4/7] scripts: python: implement get or create stack function |
| |
On Wed, Jul 05, 2023 at 10:55:52PM -0700, Namhyung Kim wrote: > On Wed, Jul 5, 2023 at 12:48 PM Anup Sharma <anupnewsmail@gmail.com> wrote: > > > > The get_or_create_stack function is responsible for retrieving > > or creating a stack based on the provided frame and prefix. > > It first generates a key using the frame and prefix values. > > If the stack corresponding to the key is found in the stackMap, > > it is returned. Otherwise, a new stack is created by appending > > the prefix and frame to the stackTable's 'data' array. The key > > and the index of the newly created stack are added to the > > stackMap for future reference. > > > > Signed-off-by: Anup Sharma <anupnewsmail@gmail.com> > > --- > > tools/perf/scripts/python/firefox-gecko-converter.py | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/tools/perf/scripts/python/firefox-gecko-converter.py b/tools/perf/scripts/python/firefox-gecko-converter.py > > index e56864e78dc1..6f69c083d3ff 100644 > > --- a/tools/perf/scripts/python/firefox-gecko-converter.py > > +++ b/tools/perf/scripts/python/firefox-gecko-converter.py > > @@ -65,6 +65,17 @@ def process_event(param_dict): > > }, > > 'data': [], > > } > > + stringTable = [] > > + > > + stackMap = dict() > > + def get_or_create_stack(frame, prefix): > > + key = f"{frame}" if prefix is None else f"{frame},{prefix}" > > + stack = stackMap.get(key) > > I'm confused about what the 'stack' is.
The stack is a list of frames.
> > + if stack is None: > > + stack = len(stackTable['data']) > > It seems like a kind of index for the stackTable's data.
Yes, it is an index.
> > + stackTable['data'].append([prefix, frame]) > > + stackMap[key] = stack > > + return stack > > So this function returns an index, right?
Correct, it returns an index. This index allows to access or identify a specific stack within the table.
> Thanks, > Namhyung > > > > > > def _addThreadSample(pid, tid, threadName, time_stamp, stack): > > thread = thread_map.get(tid) > > -- > > 2.34.1 > >
| |