
Hi All, I have a large code base that I am trying to optimize. I have a flame graph that tells me that it spends about 30% of it's time in pypy_g_ArenaCollection_rehash_arena_lists. Unfortunately, I can't see the rest of the call stack, so I am trying to compile a debug version of pypy. I followed the instructions here: https://doc.pypy.org/en/latest/build.html I'm at the step where it tells you to run: make lldebug or make lldebug0, and i'm realizing there is no such target. Please help! --Buddy

Hi, On Sat, 2 Dec 2023 at 04:14, <buddy.lumpkin@gmail.com> wrote: in pypy_g_ArenaCollection_rehash_arena_lists. Unfortunately, I can't see the rest of the call stack, so I am trying to compile a debug version of pypy.
This paragraph in the instructions is not talking about the top-level Makefile. It is talking about the Makefile generated along all the generated C files in the temporary directory, in /tmp/usession-*/testing_1/. Armin Rigo

Even with debug symbols, my flame graph does not show calling functions. Looking at /proc/<pid>/exe, I see the debug symbols: lrwxrwxrwx. 1 opc opc 0 Dec 3 03:28 exe -> /var/odo/pyenv/chlulu/.pyenv/versions/pypy3.8-7.3.9/bin/pypy3 [opc@x9-test2 105045]$ readelf -S exe | grep .debug [26] .debug_aranges PROGBITS 0000000000000000 00003093 [27] .debug_info PROGBITS 0000000000000000 000030c3 [28] .debug_abbrev PROGBITS 0000000000000000 00003189 [29] .debug_line PROGBITS 0000000000000000 00003221 [30] .debug_str PROGBITS 0000000000000000 00003269 [31] .debug_loc PROGBITS 0000000000000000 0000331c The calling function just says unknown. Any idea how I can help prof identify all of the ancestry of each function in the profile? --Buddy On Sat, Dec 2, 2023 at 1:18 AM Buddy Lumpkin <buddy.lumpkin@gmail.com> wrote:

I can't see the rest of the call stack, so I am trying to compile a debug version of pypy. https://tinyfishing.co

Hi, On Sat, 2 Dec 2023 at 04:14, <buddy.lumpkin@gmail.com> wrote: in pypy_g_ArenaCollection_rehash_arena_lists. Unfortunately, I can't see the rest of the call stack, so I am trying to compile a debug version of pypy.
This paragraph in the instructions is not talking about the top-level Makefile. It is talking about the Makefile generated along all the generated C files in the temporary directory, in /tmp/usession-*/testing_1/. Armin Rigo

Even with debug symbols, my flame graph does not show calling functions. Looking at /proc/<pid>/exe, I see the debug symbols: lrwxrwxrwx. 1 opc opc 0 Dec 3 03:28 exe -> /var/odo/pyenv/chlulu/.pyenv/versions/pypy3.8-7.3.9/bin/pypy3 [opc@x9-test2 105045]$ readelf -S exe | grep .debug [26] .debug_aranges PROGBITS 0000000000000000 00003093 [27] .debug_info PROGBITS 0000000000000000 000030c3 [28] .debug_abbrev PROGBITS 0000000000000000 00003189 [29] .debug_line PROGBITS 0000000000000000 00003221 [30] .debug_str PROGBITS 0000000000000000 00003269 [31] .debug_loc PROGBITS 0000000000000000 0000331c The calling function just says unknown. Any idea how I can help prof identify all of the ancestry of each function in the profile? --Buddy On Sat, Dec 2, 2023 at 1:18 AM Buddy Lumpkin <buddy.lumpkin@gmail.com> wrote:

I can't see the rest of the call stack, so I am trying to compile a debug version of pypy. https://tinyfishing.co
participants (4)
-
Armin Rigo
-
Buddy Lumpkin
-
buddy.lumpkin@gmail.com
-
taniyuki246@gmail.com