lkml.org 
[lkml]   [2023]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [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
    > >

    \
     
     \ /
      Last update: 2023-07-11 00:02    [W:3.861 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site