Skip to content

gh-118518: Allow perf to work without frame pointers #112254

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
May 5, 2024

Conversation

pablogsal
Copy link
Member

@pablogsal pablogsal commented Nov 19, 2023

@pablogsal
Copy link
Member Author

pablogsal commented Nov 19, 2023

I need to clean this up a bit after the latest changes :(

Also this is missing docs.

@pablogsal pablogsal force-pushed the perfjit branch 2 times, most recently from 997b082 to e2c0d7f Compare November 19, 2023 16:51
@pablogsal pablogsal added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@pablogsal pablogsal force-pushed the perfjit branch 2 times, most recently from 9a00d1f to b2ab074 Compare November 19, 2023 17:39
@pablogsal pablogsal added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@pablogsal pablogsal added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 19, 2023
@python python deleted a comment from bedevere-bot Nov 19, 2023
@python python deleted a comment from bedevere-bot Nov 19, 2023
@python python deleted a comment from bedevere-bot Nov 19, 2023
@python python deleted a comment from bedevere-bot Nov 19, 2023
@pablogsal
Copy link
Member Author

!buildbot perf

@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @pablogsal for commit 7cbd394 🤖

The command will test the builders whose names match following regular expression: perf

The builders matched are:

  • AMD64 Arch Linux Perf PR
@pablogsal pablogsal added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 20, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @pablogsal for commit 7cbd394 🤖

If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again.

@bedevere-bot bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Nov 20, 2023
@namhyung
Copy link
Contributor

Hi, Linux perf supports DWARF unwinding using either libunwind or libdw. And they might have different quality of supports. Do you know which one you used (and worked)? And please share the problems or symptoms you are seeing in more detail, thanks!

@pablogsal
Copy link
Member Author

pablogsal commented Nov 30, 2023

Thanks a lot for the help @namhyung

Hi, Linux perf supports DWARF unwinding using either libunwind or libdw. And they might have different quality of supports. Do you know which one you used (and worked)?

Do you know how can I check this? The closest I got is to check symbols in thee binary distributed with the distro:

nm /usr/lib/linux-tools/5.15.0-88-generic/perf | grep libunwind 00000000008a2888 V arm64_unwind_libunwind_ops 000000000039ad90 T libunwind__arch_reg_id 0000000000672fe0 D local_unwind_libunwind_ops 0000000000673000 d _unwind_libunwind_ops 00000000008a2890 V x86_32_unwind_libunwind_ops 

from that looks like is using lubunwind in Ubuntu and Arch Linux.

And please share the problems or symptoms you are seeing in more detail, thanks!

To illustrate the problems I am going to execute the following steps in an Ubuntu 22.04.3 system. These are the relevant versions:

$ uname -a Linux shaphire 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID:	Ubuntu Description:	Ubuntu 22.04.3 LTS Release:	22.04 Codename:	jammy $ perf --version perf version 5.15.126 

Consider this Python file:

def foo(): bar() def bar(): baz() def baz(): x = 0 for _ in range(50_000_000): x += 1 foo() 

Running perf with this integration activated with a Python compiled with no frame pointers (the default) over the file:

$ perf record --call-graph dwarf,65528 -g -F99 -k1 -- ./python -Xperfjit lol.py [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.044 MB perf.data (182 samples) ] $ perf inject -j -i perf.data -o jit.data 

This produces a bunch of elf files that look sane. For example

$ readelf -a /tmp/jitted-253980-17.so readelf -a /tmp/jitted-282493-125.so ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x40 Start of program headers: 64 (bytes into file) Start of section headers: 392 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 1 Size of section headers: 64 (bytes) Number of section headers: 8 Section header string table index: 4 Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .text PROGBITS 0000000000000040 00000080 0000000000000008 0000000000000000 AX 0 0 16 [ 2] .eh_frame PROGBITS 0000000000000048 00000088 0000000000000000 0000000000000000 A 0 0 8 [ 3] .eh_frame_hdr PROGBITS 0000000000000048 00000088 0000000000000014 0000000000000000 A 0 0 4 [ 4] .shstrtab STRTAB 0000000000000000 0000009c 0000000000000072 0000000000000000 0 0 1 [ 5] .symtab SYMTAB 0000000000000000 00000110 0000000000000030 0000000000000018 6 0 8 [ 6] .strtab STRTAB 0000000000000000 00000140 0000000000000021 0000000000000000 0 0 1 [ 7] .note.gnu.bu[...] NOTE 0000000000000000 00000164 0000000000000024 0000000000000000 A 0 0 4 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), D (mbind), l (large), p (processor specific) There are no section groups in this file. Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000008 0x0000000000000008 R E 0x8 Section to Segment mapping: Segment Sections... 00 There is no dynamic section in this file. There are no relocations in this file. No processor specific unwind information to decode Symbol table '.symtab' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND readelf: Warning: local symbol 0 found at index >= .symtab's sh_info value of 0 1: 0000000000000040 8 FUNC LOCAL DEFAULT 1 py::isfile:<froz[...] readelf: Warning: local symbol 1 found at index >= .symtab's sh_info value of 0 No version information found in this file. Displaying notes found in: .note.gnu.build-id Owner Data size	Description GNU 0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 36a3547b278a810364cadde5ba49d28100000000 

The symbols are correctly placed in the symbol table:

 1: 0000000000000040 8 FUNC LOCAL DEFAULT 1 py::isfile:<froz[...] 

The eh_frame is there and empty as expeected:

 readelf -w /tmp/jitted-282493-125.so Section '.eh_frame' has no debugging data. 

But unfortunately perf doesn't connect the trampolines. For example:

$ perf script -i jit.data ... python 282493 748363.523441: 43879905 cycles: 5567f85cc0b1 _Py_NewReference+0x21 (/home/pablogsal/cpython/python) 5567f85aa8d7 _PyObject_Init+0x1d7 (inlined) 5567f85aa8d7 _PyLong_FromMedium+0x1d7 (inlined) 5567f85aa8d7 _PyLong_FromSTwoDigits+0x1d7 (inlined) 5567f85aa8d7 _PyLong_Add+0x1d7 (/home/pablogsal/cpython/python) 5567f84fc6ff _PyEval_EvalFrameDefault+0x2a0f (/home/pablogsal/cpython/python) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 5567f87225e9 py_trampoline_evaluator+0x79 (/home/pablogsal/cpython/python) 5567f8566a1b _PyObject_VectorcallTstate+0x3b (inlined) 5567f8566a1b PyObject_Vectorcall+0x3b (/home/pablogsal/cpython/python) 5567f84ffbb8 _PyEval_EvalFrameDefault+0x5ec8 (/home/pablogsal/cpython/python) 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 5567f87225e9 py_trampoline_evaluator+0x79 (/home/pablogsal/cpython/python) 5567f8566a1b _PyObject_VectorcallTstate+0x3b (inlined) 5567f8566a1b PyObject_Vectorcall+0x3b (/home/pablogsal/cpython/python) 5567f84ffbb8 _PyEval_EvalFrameDefault+0x5ec8 (/home/pablogsal/cpython/python) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) 5567f87225e9 py_trampoline_evaluator+0x79 (/home/pablogsal/cpython/python) 5567f8566a1b _PyObject_VectorcallTstate+0x3b (inlined) 5567f8566a1b PyObject_Vectorcall+0x3b (/home/pablogsal/cpython/python) 5567f84ffbb8 _PyEval_EvalFrameDefault+0x5ec8 (/home/pablogsal/cpython/python) 7fe006dfd555 [unknown] (/tmp/jitted-282493-170.so) 5567f87225e9 py_trampoline_evaluator+0x79 (/home/pablogsal/cpython/python) 5567f8691b92 _PyEval_EvalFrame+0x172 (inlined) 5567f8691b92 _PyEval_Vector+0x172 (inlined) 5567f8691b92 PyEval_EvalCode+0x172 (/home/pablogsal/cpython/python) 5567f86f8f4c run_eval_code_obj+0x1ac (inlined) 5567f86f8f4c run_mod+0x1ac (/home/pablogsal/cpython/python) 5567f86fad90 pyrun_file+0x180 (inlined) 5567f86fad90 _PyRun_SimpleFileObject+0x180 (/home/pablogsal/cpython/python) 5567f86fb3a7 _PyRun_AnyFileObject+0x47 (/home/pablogsal/cpython/python) 5567f8724654 pymain_run_file_obj+0x8e4 (inlined) 5567f8724654 pymain_run_file+0x8e4 (inlined) 5567f8724654 pymain_run_python+0x8e4 (inlined) 5567f8724cab Py_RunMain+0x6b (inlined) 5567f8724cab pymain_main+0x6b (inlined) 5567f8724cab Py_BytesMain+0x6b (/home/pablogsal/cpython/python) 7fe007388d8f __libc_start_call_main+0x7f (/usr/lib/x86_64-linux-gnu/libc.so.6) 7fe007388e3f __libc_start_main_impl+0x7f (inlined) 5567f85076d4 _start+0x24 (/home/pablogsal/cpython/python) 

Notice that there are a bunch of

 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) ... 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) ... 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) ... 

but if you inspect those shared objects hey look ok:

readelf -a /tmp/jitted-282493-171.so ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x40 Start of program headers: 64 (bytes into file) Start of section headers: 400 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 1 Size of section headers: 64 (bytes) Number of section headers: 8 Section header string table index: 4 Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .text PROGBITS 0000000000000040 00000080 0000000000000008 0000000000000000 AX 0 0 16 [ 2] .eh_frame PROGBITS 0000000000000048 00000088 0000000000000000 0000000000000000 A 0 0 8 [ 3] .eh_frame_hdr PROGBITS 0000000000000048 00000088 0000000000000014 0000000000000000 A 0 0 4 [ 4] .shstrtab STRTAB 0000000000000000 0000009c 0000000000000072 0000000000000000 0 0 1 [ 5] .symtab SYMTAB 0000000000000000 00000110 0000000000000030 0000000000000018 6 0 8 [ 6] .strtab STRTAB 0000000000000000 00000140 0000000000000028 0000000000000000 0 0 1 [ 7] .note.gnu.bu[...] NOTE 0000000000000000 00000168 0000000000000024 0000000000000000 A 0 0 4 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), D (mbind), l (large), p (processor specific) There are no section groups in this file. Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000008 0x0000000000000008 R E 0x8 Section to Segment mapping: Segment Sections... 00 There is no dynamic section in this file. There are no relocations in this file. No processor specific unwind information to decode Symbol table '.symtab' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND readelf: Warning: local symbol 0 found at index >= .symtab's sh_info value of 0 1: 0000000000000040 8 FUNC LOCAL DEFAULT 1 py::foo:/home/pa[...] readelf: Warning: local symbol 1 found at index >= .symtab's sh_info value of 0 No version information found in this file. Displaying notes found in: .note.gnu.build-id Owner Data size	Description GNU 0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: aedfca06b709dcc3e495252add8ed24f00000000 

Other things to notice:

  • If you execute the same steps is other distributions like fedora you don't get to unwind pass the trampoline:
python 282493 748363.523441: 43879905 cycles: 5567f85cc0b1 _Py_NewReference+0x21 (/home/pablogsal/cpython/python) 5567f85aa8d7 _PyObject_Init+0x1d7 (inlined) 5567f85aa8d7 _PyLong_FromMedium+0x1d7 (inlined) 5567f85aa8d7 _PyLong_FromSTwoDigits+0x1d7 (inlined) 5567f85aa8d7 _PyLong_Add+0x1d7 (/home/pablogsal/cpython/python) 5567f84fc6ff _PyEval_EvalFrameDefault+0x2a0f (/home/pablogsal/cpython/python) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 
  • In Arch Linux both unwinding and symbol resolving works, even under the same kernel version. I am not sure what other differences there are with the perf version shipped here that could make it work.
@namhyung
Copy link
Contributor

Hi, Linux perf supports DWARF unwinding using either libunwind or libdw. And they might have different quality of supports. Do you know which one you used (and worked)?

Do you know how can I check this?

Try perf version --build-options | grep libunwind.

@namhyung
Copy link
Contributor

Let's do this one by one. So on Ubuntu, it basically gets the stack trace correctly but no symbols in the python trampolines, right?

One thing I noticed is warnings in the readelf output for the symbol table.

Symbol table '.symtab' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND readelf: Warning: local symbol 0 found at index >= .symtab's sh_info value of 0 1: 0000000000000040 8 FUNC LOCAL DEFAULT 1 py::isfile:<froz[...] readelf: Warning: local symbol 1 found at index >= .symtab's sh_info value of 0 

I don't know what .symtab.sh_info means. One thing I can find so far is the Solaris Linker and Libraries Guide:

Symbol Table Layout and Conventions
...
The global symbols immediately follow the local symbols in the symbol table. The first global symbol is identified by the symbol table sh_info value. Local and global symbols are always kept separate in this manner, and cannot be mixed together.

But I'm not sure if it's the case for Linux as my test binary has mixed global and local symbols.

@namhyung
Copy link
Contributor

Also, I'm curious how exactly the JIT code maps to the address. Can you please run this?

perf script -i jit.data --show-mmap-events | grep jit 
@pablogsal
Copy link
Member Author

pablogsal commented Nov 30, 2023

Ok, here is the information for Ubuntu:

$ perf version --build-options perf version 5.15.126 dwarf: [ on ] # HAVE_DWARF_SUPPORT dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT glibc: [ on ] # HAVE_GLIBC_SUPPORT syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT libbfd: [ OFF ] # HAVE_LIBBFD_SUPPORT libelf: [ on ] # HAVE_LIBELF_SUPPORT libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT libpython: [ OFF ] # HAVE_LIBPYTHON_SUPPORT libslang: [ on ] # HAVE_SLANG_SUPPORT libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT zlib: [ on ] # HAVE_ZLIB_SUPPORT lzma: [ on ] # HAVE_LZMA_SUPPORT get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT bpf: [ on ] # HAVE_LIBBPF_SUPPORT aio: [ on ] # HAVE_AIO_SUPPORT zstd: [ OFF ] # HAVE_ZSTD_SUPPORT libpfm4: [ OFF ] # HAVE_LIBPFM $ perf version --build-options | grep libunwind libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT $ perf script -i jit.data --show-mmap-events | grep jit python 282493 748361.693167: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd000(0x8) @ 0x40 08:02 110113952 1]: --xs /tmp/jitted-282493-0.so python 282493 748361.693170: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd008(0x8) @ 0x40 08:02 110114127 1]: --xs /tmp/jitted-282493-1.so python 282493 748361.693172: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd010(0x8) @ 0x40 08:02 110114128 1]: --xs /tmp/jitted-282493-2.so python 282493 748361.693177: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd018(0x8) @ 0x40 08:02 110114129 1]: --xs /tmp/jitted-282493-3.so python 282493 748361.693179: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd020(0x8) @ 0x40 08:02 110114130 1]: --xs /tmp/jitted-282493-4.so python 282493 748361.693180: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd028(0x8) @ 0x40 08:02 110114131 1]: --xs /tmp/jitted-282493-5.so python 282493 748361.693183: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd030(0x8) @ 0x40 08:02 110114132 1]: --xs /tmp/jitted-282493-6.so python 282493 748361.693185: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd038(0x8) @ 0x40 08:02 110114133 1]: --xs /tmp/jitted-282493-7.so python 282493 748361.693189: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd040(0x8) @ 0x40 08:02 110114134 1]: --xs /tmp/jitted-282493-8.so python 282493 748361.693191: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd048(0x8) @ 0x40 08:02 110114135 1]: --xs /tmp/jitted-282493-9.so python 282493 748361.693193: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd050(0x8) @ 0x40 08:02 110114136 1]: --xs /tmp/jitted-282493-10.so python 282493 748361.693195: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd058(0x8) @ 0x40 08:02 110114137 1]: --xs /tmp/jitted-282493-11.so python 282493 748361.693197: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd060(0x8) @ 0x40 08:02 110114138 1]: --xs /tmp/jitted-282493-12.so python 282493 748361.693199: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd068(0x8) @ 0x40 08:02 110114139 1]: --xs /tmp/jitted-282493-13.so python 282493 748361.693200: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd070(0x8) @ 0x40 08:02 110114140 1]: --xs /tmp/jitted-282493-14.so python 282493 748361.693203: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd078(0x8) @ 0x40 08:02 110114141 1]: --xs /tmp/jitted-282493-15.so python 282493 748361.693204: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd080(0x8) @ 0x40 08:02 110114142 1]: --xs /tmp/jitted-282493-16.so python 282493 748361.693210: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd088(0x8) @ 0x40 08:02 110114143 1]: --xs /tmp/jitted-282493-17.so python 282493 748361.693212: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd090(0x8) @ 0x40 08:02 110114144 1]: --xs /tmp/jitted-282493-18.so python 282493 748361.693214: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd098(0x8) @ 0x40 08:02 110114145 1]: --xs /tmp/jitted-282493-19.so python 282493 748361.693219: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0a0(0x8) @ 0x40 08:02 110114146 1]: --xs /tmp/jitted-282493-20.so python 282493 748361.693262: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0a8(0x8) @ 0x40 08:02 110114147 1]: --xs /tmp/jitted-282493-21.so python 282493 748361.693264: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0b0(0x8) @ 0x40 08:02 110114148 1]: --xs /tmp/jitted-282493-22.so python 282493 748361.693265: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0b8(0x8) @ 0x40 08:02 110114149 1]: --xs /tmp/jitted-282493-23.so python 282493 748361.693268: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0c0(0x8) @ 0x40 08:02 110114150 1]: --xs /tmp/jitted-282493-24.so python 282493 748361.693270: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0c8(0x8) @ 0x40 08:02 110114151 1]: --xs /tmp/jitted-282493-25.so python 282493 748361.693272: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0d0(0x8) @ 0x40 08:02 110114152 1]: --xs /tmp/jitted-282493-26.so python 282493 748361.693274: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0d8(0x8) @ 0x40 08:02 110114153 1]: --xs /tmp/jitted-282493-27.so python 282493 748361.693295: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0e0(0x8) @ 0x40 08:02 110114154 1]: --xs /tmp/jitted-282493-28.so python 282493 748361.693361: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0e8(0x8) @ 0x40 08:02 110114155 1]: --xs /tmp/jitted-282493-29.so python 282493 748361.693363: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0f0(0x8) @ 0x40 08:02 110114156 1]: --xs /tmp/jitted-282493-30.so python 282493 748361.693379: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd0f8(0x8) @ 0x40 08:02 110114157 1]: --xs /tmp/jitted-282493-31.so python 282493 748361.693390: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd100(0x8) @ 0x40 08:02 110114158 1]: --xs /tmp/jitted-282493-32.so python 282493 748361.693417: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd108(0x8) @ 0x40 08:02 110114159 1]: --xs /tmp/jitted-282493-33.so python 282493 748361.693418: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd110(0x8) @ 0x40 08:02 110114160 1]: --xs /tmp/jitted-282493-34.so python 282493 748361.693423: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd118(0x8) @ 0x40 08:02 110114161 1]: --xs /tmp/jitted-282493-35.so python 282493 748361.693433: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd120(0x8) @ 0x40 08:02 110114162 1]: --xs /tmp/jitted-282493-36.so python 282493 748361.693438: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd128(0x8) @ 0x40 08:02 110114163 1]: --xs /tmp/jitted-282493-37.so python 282493 748361.693440: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd130(0x8) @ 0x40 08:02 110114164 1]: --xs /tmp/jitted-282493-38.so python 282493 748361.693441: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd138(0x8) @ 0x40 08:02 110114165 1]: --xs /tmp/jitted-282493-39.so python 282493 748361.693445: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd140(0x8) @ 0x40 08:02 110114166 1]: --xs /tmp/jitted-282493-40.so python 282493 748361.693449: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd148(0x8) @ 0x40 08:02 110114167 1]: --xs /tmp/jitted-282493-41.so python 282493 748361.693466: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd150(0x8) @ 0x40 08:02 110114168 1]: --xs /tmp/jitted-282493-42.so python 282493 748361.693468: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd158(0x8) @ 0x40 08:02 110114169 1]: --xs /tmp/jitted-282493-43.so python 282493 748361.693498: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd160(0x8) @ 0x40 08:02 110114170 1]: --xs /tmp/jitted-282493-44.so python 282493 748361.693528: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd168(0x8) @ 0x40 08:02 110114171 1]: --xs /tmp/jitted-282493-45.so python 282493 748361.693548: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd170(0x8) @ 0x40 08:02 110114172 1]: --xs /tmp/jitted-282493-46.so python 282493 748361.693565: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd178(0x8) @ 0x40 08:02 110114173 1]: --xs /tmp/jitted-282493-47.so python 282493 748361.693583: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd180(0x8) @ 0x40 08:02 110114174 1]: --xs /tmp/jitted-282493-48.so python 282493 748361.693585: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd188(0x8) @ 0x40 08:02 110114175 1]: --xs /tmp/jitted-282493-49.so python 282493 748361.693640: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd190(0x8) @ 0x40 08:02 110114176 1]: --xs /tmp/jitted-282493-50.so python 282493 748361.693642: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd198(0x8) @ 0x40 08:02 110114177 1]: --xs /tmp/jitted-282493-51.so python 282493 748361.693657: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1a0(0x8) @ 0x40 08:02 110114178 1]: --xs /tmp/jitted-282493-52.so 7fe006dfd085 [unknown] (/tmp/jitted-282493-16.so) 7fe006dfd0dd [unknown] (/tmp/jitted-282493-27.so) 7fe006dfd0a5 [unknown] (/tmp/jitted-282493-20.so) 7fe006dfd055 [unknown] (/tmp/jitted-282493-10.so) 7fe006dfd005 [unknown] (/tmp/jitted-282493-0.so) python 282493 748361.693820: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1a8(0x8) @ 0x40 08:02 110114179 1]: --xs /tmp/jitted-282493-53.so python 282493 748361.694027: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1b0(0x8) @ 0x40 08:02 110114180 1]: --xs /tmp/jitted-282493-54.so python 282493 748361.694086: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1b8(0x8) @ 0x40 08:02 110114181 1]: --xs /tmp/jitted-282493-55.so python 282493 748361.694475: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1c0(0x8) @ 0x40 08:02 110114182 1]: --xs /tmp/jitted-282493-56.so python 282493 748361.694497: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1c8(0x8) @ 0x40 08:02 110114183 1]: --xs /tmp/jitted-282493-57.so python 282493 748361.694499: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1d0(0x8) @ 0x40 08:02 110114184 1]: --xs /tmp/jitted-282493-58.so python 282493 748361.694501: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1d8(0x8) @ 0x40 08:02 110114185 1]: --xs /tmp/jitted-282493-59.so python 282493 748361.694504: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1e0(0x8) @ 0x40 08:02 110114186 1]: --xs /tmp/jitted-282493-60.so python 282493 748361.694506: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1e8(0x8) @ 0x40 08:02 110114187 1]: --xs /tmp/jitted-282493-61.so python 282493 748361.694537: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1f0(0x8) @ 0x40 08:02 110114188 1]: --xs /tmp/jitted-282493-62.so python 282493 748361.694556: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd1f8(0x8) @ 0x40 08:02 110114189 1]: --xs /tmp/jitted-282493-63.so python 282493 748361.694578: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd200(0x8) @ 0x40 08:02 110114190 1]: --xs /tmp/jitted-282493-64.so python 282493 748361.694579: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd208(0x8) @ 0x40 08:02 110114191 1]: --xs /tmp/jitted-282493-65.so python 282493 748361.694585: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd210(0x8) @ 0x40 08:02 110114192 1]: --xs /tmp/jitted-282493-66.so python 282493 748361.694601: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd218(0x8) @ 0x40 08:02 110114193 1]: --xs /tmp/jitted-282493-67.so python 282493 748361.694616: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd220(0x8) @ 0x40 08:02 110114194 1]: --xs /tmp/jitted-282493-68.so python 282493 748361.694642: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd228(0x8) @ 0x40 08:02 110114195 1]: --xs /tmp/jitted-282493-69.so python 282493 748361.694648: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd230(0x8) @ 0x40 08:02 110114196 1]: --xs /tmp/jitted-282493-70.so python 282493 748361.694665: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd238(0x8) @ 0x40 08:02 110114197 1]: --xs /tmp/jitted-282493-71.so python 282493 748361.694684: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd240(0x8) @ 0x40 08:02 110114198 1]: --xs /tmp/jitted-282493-72.so python 282493 748361.694707: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd248(0x8) @ 0x40 08:02 110114199 1]: --xs /tmp/jitted-282493-73.so python 282493 748361.694722: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd250(0x8) @ 0x40 08:02 110114200 1]: --xs /tmp/jitted-282493-74.so python 282493 748361.694742: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd258(0x8) @ 0x40 08:02 110114201 1]: --xs /tmp/jitted-282493-75.so python 282493 748361.694747: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd260(0x8) @ 0x40 08:02 110114202 1]: --xs /tmp/jitted-282493-76.so python 282493 748361.694760: PERF_RECORD_MMAP2 282493/282493: [0x7fe006dfd268(0x8) @ 0x40 08:02 110114203 1]: --xs /tmp/jitted-282493-77.so 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) ... 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) 7fe006dfd555 [unknown] (/tmp/jitted-282493-170.so) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) 7fe006dfd555 [unknown] (/tmp/jitted-282493-170.so) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) 7fe006dfd555 [unknown] (/tmp/jitted-282493-170.so) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) 7fe006dfd555 [unknown] (/tmp/jitted-282493-170.so) 7fe006dfd56d [unknown] (/tmp/jitted-282493-173.so) 7fe006dfd565 [unknown] (/tmp/jitted-282493-172.so) 7fe006dfd55d [unknown] (/tmp/jitted-282493-171.so) ... ... ... 
@python python deleted a comment from bedevere-bot Nov 30, 2023
@pablogsal
Copy link
Member Author

pablogsal commented Nov 30, 2023

Here is the data for Arch Linux (which is the distro where everything works as expected):

$ perf version --build-options perf version 6.5-1 dwarf: [ on ] # HAVE_DWARF_SUPPORT dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT libbfd: [ OFF ] # HAVE_LIBBFD_SUPPORT debuginfod: [ on ] # HAVE_DEBUGINFOD_SUPPORT libelf: [ on ] # HAVE_LIBELF_SUPPORT libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT libperl: [ on ] # HAVE_LIBPERL_SUPPORT libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT libslang: [ on ] # HAVE_SLANG_SUPPORT libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT zlib: [ on ] # HAVE_ZLIB_SUPPORT lzma: [ on ] # HAVE_LZMA_SUPPORT get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT bpf: [ on ] # HAVE_LIBBPF_SUPPORT aio: [ on ] # HAVE_AIO_SUPPORT zstd: [ on ] # HAVE_ZSTD_SUPPORT libpfm4: [ OFF ] # HAVE_LIBPFM libtraceevent: [ on ] # HAVE_LIBTRACEEVENT $perf version --build-options | grep libunwind libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT $ perf script -i jit.data --show-mmap-events | grep jit python 34354 784888.633641: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03000(0x8) @ 0x80 00:30 15762326 1]: --xs /tmp/jitted-34354-0.so python 34354 784888.633643: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03008(0x8) @ 0x80 00:30 15762327 1]: --xs /tmp/jitted-34354-1.so python 34354 784888.633645: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03010(0x8) @ 0x80 00:30 15762328 1]: --xs /tmp/jitted-34354-2.so python 34354 784888.633650: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03018(0x8) @ 0x80 00:30 15762329 1]: --xs /tmp/jitted-34354-3.so python 34354 784888.633651: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03020(0x8) @ 0x80 00:30 15762330 1]: --xs /tmp/jitted-34354-4.so python 34354 784888.633652: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03028(0x8) @ 0x80 00:30 15762331 1]: --xs /tmp/jitted-34354-5.so python 34354 784888.633654: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03030(0x8) @ 0x80 00:30 15762332 1]: --xs /tmp/jitted-34354-6.so python 34354 784888.633656: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03038(0x8) @ 0x80 00:30 15762333 1]: --xs /tmp/jitted-34354-7.so python 34354 784888.633660: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03040(0x8) @ 0x80 00:30 15762334 1]: --xs /tmp/jitted-34354-8.so python 34354 784888.633662: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03048(0x8) @ 0x80 00:30 15762335 1]: --xs /tmp/jitted-34354-9.so python 34354 784888.633664: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03050(0x8) @ 0x80 00:30 15762336 1]: --xs /tmp/jitted-34354-10.so python 34354 784888.633666: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03058(0x8) @ 0x80 00:30 15762337 1]: --xs /tmp/jitted-34354-11.so python 34354 784888.633667: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03060(0x8) @ 0x80 00:30 15762338 1]: --xs /tmp/jitted-34354-12.so python 34354 784888.633669: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03068(0x8) @ 0x80 00:30 15762339 1]: --xs /tmp/jitted-34354-13.so python 34354 784888.633670: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03070(0x8) @ 0x80 00:30 15762340 1]: --xs /tmp/jitted-34354-14.so python 34354 784888.633672: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03078(0x8) @ 0x80 00:30 15762341 1]: --xs /tmp/jitted-34354-15.so python 34354 784888.633673: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03080(0x8) @ 0x80 00:30 15762342 1]: --xs /tmp/jitted-34354-16.so python 34354 784888.633676: PERF_RECORD_MMAP2 34354/34354: [0x7f2c57b03088(0x8) @ 0x80 00:30 15762343 1]: --xs /tmp/jitted-34354-17.so ... ... 5576481dc839 perf_map_jit_write_entry+0x89 (/buildbot/cpython/python) 7ff26cc630ad py::module_from_spec:<frozen importlib._bootstrap>+0x5 (/tmp/jitted-37389-21.so) 7ff26cc630a5 py::_load_unlocked:<frozen importlib._bootstrap>+0x5 (/tmp/jitted-37389-20.so) 7ff26cc63055 py::_find_and_load_unlocked:<frozen importlib._bootstrap>+0x5 (/tmp/jitted-37389-10.so) 7ff26cc63005 py::_find_and_load:<frozen importlib._bootstrap>+0x5 (/tmp/jitted-37389-0.so) ... ... python 37389 784955.315499: PERF_RECORD_MMAP2 37389/37389: [0x7ff26cc635d0(0x8) @ 0x80 00:30 15764280 1]: --xs /tmp/jitted-37389-186.so python 37389 784955.315510: PERF_RECORD_MMAP2 37389/37389: [0x7ff26cc635d8(0x8) @ 0x80 00:30 15764281 1]: --xs /tmp/jitted-37389-187.so python 37389 784955.315541: PERF_RECORD_MMAP2 37389/37389: [0x7ff26cc635e0(0x8) @ 0x80 00:30 15764282 1]: --xs /tmp/jitted-37389-188.so python 37389 784955.315554: PERF_RECORD_MMAP2 37389/37389: [0x7ff26cc635e8(0x8) @ 0x80 00:30 15764283 1]: --xs /tmp/jitted-37389-189.so python 37389 784955.315558: PERF_RECORD_MMAP2 37389/37389: [0x7ff26cc635f0(0x8) @ 0x80 00:30 15764284 1]: --xs /tmp/jitted-37389-190.so 

And here is one of the ELF objects being created:

readelf -a /tmp/jitted-34354-1669.so ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x80 Start of program headers: 64 (bytes into file) Start of section headers: 440 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 1 Size of section headers: 64 (bytes) Number of section headers: 8 Section header string table index: 4 Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .text PROGBITS 0000000000000080 00000080 0000000000000008 0000000000000000 AX 0 0 16 [ 2] .eh_frame PROGBITS 0000000000000088 00000088 0000000000000000 0000000000000000 A 0 0 8 [ 3] .eh_frame_hdr PROGBITS 0000000000000088 00000088 0000000000000014 0000000000000000 A 0 0 4 [ 4] .shstrtab STRTAB 0000000000000000 0000009c 0000000000000072 0000000000000000 0 0 1 [ 5] .symtab SYMTAB 0000000000000000 00000110 0000000000000030 0000000000000018 6 0 8 [ 6] .strtab STRTAB 0000000000000000 00000140 0000000000000053 0000000000000000 0 0 1 [ 7] .note.gnu.bu[...] NOTE 0000000000000000 00000194 0000000000000024 0000000000000000 A 0 0 4 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), D (mbind), l (large), p (processor specific) There are no section groups in this file. Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000008 0x0000000000000008 R E 0x8 Section to Segment mapping: Segment Sections... 00 There is no dynamic section in this file. There are no relocations in this file. No processor specific unwind information to decode Symbol table '.symtab' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND readelf: Warning: local symbol 0 found at index >= .symtab's sh_info value of 0 1: 0000000000000080 8 FUNC LOCAL DEFAULT 1 py::TestResults.[...] readelf: Warning: local symbol 1 found at index >= .symtab's sh_info value of 0 No version information found in this file. Displaying notes found in: .note.gnu.build-id Owner Data size	Description GNU 0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 5ca5ab441bc8dfebb2384ff25203658400000000 
@pablogsal
Copy link
Member Author

!buildbot perf

@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @pablogsal for commit 1de613e 🤖

The command will test the builders whose names match following regular expression: perf

The builders matched are:

  • AMD64 Arch Linux Perf PR
@namhyung
Copy link
Contributor

namhyung commented May 4, 2024

I'll take a look and let you know.

@namhyung
Copy link
Contributor

namhyung commented May 4, 2024

The fixes were added to v6.8 originally and then backported to v6.7.2. So and kernel versions later would be fine.

But the more important ones are long-term stable (LTS) versions which are v6.6 and v6.1. I've checked v6.6.14 has the fixes but v6.1.x doesn't. I asked the stable team to add the fixes to v6.1 already. I'll let you know once it's done and I got the version number.

Again, this is only perf tool issue and nothing related to the kernel. But the perf tools just use the same version numbers because it's maintained in the same source tree.

@pablogsal pablogsal merged commit 1b22d80 into python:main May 5, 2024
@pablogsal pablogsal deleted the perfjit branch May 5, 2024 01:07
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot aarch64 RHEL8 LTO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/338/builds/6732) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/338/builds/6732

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 2% (1/35)  remote: Compressing objects: 5% (2/35)  remote: Compressing objects: 8% (3/35)  remote: Compressing objects: 11% (4/35)  remote: Compressing objects: 14% (5/35)  remote: Compressing objects: 17% (6/35)  remote: Compressing objects: 20% (7/35)  remote: Compressing objects: 22% (8/35)  remote: Compressing objects: 25% (9/35)  remote: Compressing objects: 28% (10/35)  remote: Compressing objects: 31% (11/35)  remote: Compressing objects: 34% (12/35)  remote: Compressing objects: 37% (13/35)  remote: Compressing objects: 40% (14/35)  remote: Compressing objects: 42% (15/35)  remote: Compressing objects: 45% (16/35)  remote: Compressing objects: 48% (17/35)  remote: Compressing objects: 51% (18/35)  remote: Compressing objects: 54% (19/35)  remote: Compressing objects: 57% (20/35)  remote: Compressing objects: 60% (21/35)  remote: Compressing objects: 62% (22/35)  remote: Compressing objects: 65% (23/35)  remote: Compressing objects: 68% (24/35)  remote: Compressing objects: 71% (25/35)  remote: Compressing objects: 74% (26/35)  remote: Compressing objects: 77% (27/35)  remote: Compressing objects: 80% (28/35)  remote: Compressing objects: 82% (29/35)  remote: Compressing objects: 85% (30/35)  remote: Compressing objects: 88% (31/35)  remote: Compressing objects: 91% (32/35)  remote: Compressing objects: 94% (33/35)  remote: Compressing objects: 97% (34/35)  remote: Compressing objects: 100% (35/35)  remote: Compressing objects: 100% (35/35), done.  remote: Total 39 (delta 35), reused 7 (delta 4), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL7 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/15/builds/7676) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/15/builds/7676

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 2% (1/35)  remote: Compressing objects: 5% (2/35)  remote: Compressing objects: 8% (3/35)  remote: Compressing objects: 11% (4/35)  remote: Compressing objects: 14% (5/35)  remote: Compressing objects: 17% (6/35)  remote: Compressing objects: 20% (7/35)  remote: Compressing objects: 22% (8/35)  remote: Compressing objects: 25% (9/35)  remote: Compressing objects: 28% (10/35)  remote: Compressing objects: 31% (11/35)  remote: Compressing objects: 34% (12/35)  remote: Compressing objects: 37% (13/35)  remote: Compressing objects: 40% (14/35)  remote: Compressing objects: 42% (15/35)  remote: Compressing objects: 45% (16/35)  remote: Compressing objects: 48% (17/35)  remote: Compressing objects: 51% (18/35)  remote: Compressing objects: 54% (19/35)  remote: Compressing objects: 57% (20/35)  remote: Compressing objects: 60% (21/35)  remote: Compressing objects: 62% (22/35)  remote: Compressing objects: 65% (23/35)  remote: Compressing objects: 68% (24/35)  remote: Compressing objects: 71% (25/35)  remote: Compressing objects: 74% (26/35)  remote: Compressing objects: 77% (27/35)  remote: Compressing objects: 80% (28/35)  remote: Compressing objects: 82% (29/35)  remote: Compressing objects: 85% (30/35)  remote: Compressing objects: 88% (31/35)  remote: Compressing objects: 91% (32/35)  remote: Compressing objects: 94% (33/35)  remote: Compressing objects: 97% (34/35)  remote: Compressing objects: 100% (35/35)  remote: Compressing objects: 100% (35/35), done.  remote: Total 39 (delta 35), reused 7 (delta 4), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: checking out '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 1b22d80... gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' ../Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: ../Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3016: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3107: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL8 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/185/builds/6792) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/185/builds/6792

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' ../Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: ../Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL7 LTO + PGO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/96/builds/7451) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/96/builds/7451

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: checking out '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 1b22d80... gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make[2]: [Makefile:3107: clean-retain-profile] Error 1 (ignored) Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make[2]: *** [Makefile:3016: Python/perf_jit_trampoline.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile:867: profile-gen-stamp] Error 2 make: *** [Makefile:879: profile-run-stamp] Error 2 find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3107: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot aarch64 RHEL8 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/529/builds/6535) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/529/builds/6535

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' ../Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: ../Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL8 FIPS Only Blake2 Builtin Hash 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/469/builds/8051) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/469/builds/8051

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 2% (1/35)  remote: Compressing objects: 5% (2/35)  remote: Compressing objects: 8% (3/35)  remote: Compressing objects: 11% (4/35)  remote: Compressing objects: 14% (5/35)  remote: Compressing objects: 17% (6/35)  remote: Compressing objects: 20% (7/35)  remote: Compressing objects: 22% (8/35)  remote: Compressing objects: 25% (9/35)  remote: Compressing objects: 28% (10/35)  remote: Compressing objects: 31% (11/35)  remote: Compressing objects: 34% (12/35)  remote: Compressing objects: 37% (13/35)  remote: Compressing objects: 40% (14/35)  remote: Compressing objects: 42% (15/35)  remote: Compressing objects: 45% (16/35)  remote: Compressing objects: 48% (17/35)  remote: Compressing objects: 51% (18/35)  remote: Compressing objects: 54% (19/35)  remote: Compressing objects: 57% (20/35)  remote: Compressing objects: 60% (21/35)  remote: Compressing objects: 62% (22/35)  remote: Compressing objects: 65% (23/35)  remote: Compressing objects: 68% (24/35)  remote: Compressing objects: 71% (25/35)  remote: Compressing objects: 74% (26/35)  remote: Compressing objects: 77% (27/35)  remote: Compressing objects: 80% (28/35)  remote: Compressing objects: 82% (29/35)  remote: Compressing objects: 85% (30/35)  remote: Compressing objects: 88% (31/35)  remote: Compressing objects: 91% (32/35)  remote: Compressing objects: 94% (33/35)  remote: Compressing objects: 97% (34/35)  remote: Compressing objects: 100% (35/35)  remote: Compressing objects: 100% (35/35), done.  remote: Total 39 (delta 35), reused 7 (delta 4), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' ../Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: ../Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3021: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3112: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL7 LTO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/507/builds/7387) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/507/builds/7387

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: checking out '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 1b22d80... gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3016: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3107: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot aarch64 RHEL8 LTO + PGO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/78/builds/7064) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/78/builds/7064

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 2% (1/35)  remote: Compressing objects: 5% (2/35)  remote: Compressing objects: 8% (3/35)  remote: Compressing objects: 11% (4/35)  remote: Compressing objects: 14% (5/35)  remote: Compressing objects: 17% (6/35)  remote: Compressing objects: 20% (7/35)  remote: Compressing objects: 22% (8/35)  remote: Compressing objects: 25% (9/35)  remote: Compressing objects: 28% (10/35)  remote: Compressing objects: 31% (11/35)  remote: Compressing objects: 34% (12/35)  remote: Compressing objects: 37% (13/35)  remote: Compressing objects: 40% (14/35)  remote: Compressing objects: 42% (15/35)  remote: Compressing objects: 45% (16/35)  remote: Compressing objects: 48% (17/35)  remote: Compressing objects: 51% (18/35)  remote: Compressing objects: 54% (19/35)  remote: Compressing objects: 57% (20/35)  remote: Compressing objects: 60% (21/35)  remote: Compressing objects: 62% (22/35)  remote: Compressing objects: 65% (23/35)  remote: Compressing objects: 68% (24/35)  remote: Compressing objects: 71% (25/35)  remote: Compressing objects: 74% (26/35)  remote: Compressing objects: 77% (27/35)  remote: Compressing objects: 80% (28/35)  remote: Compressing objects: 82% (29/35)  remote: Compressing objects: 85% (30/35)  remote: Compressing objects: 88% (31/35)  remote: Compressing objects: 91% (32/35)  remote: Compressing objects: 94% (33/35)  remote: Compressing objects: 97% (34/35)  remote: Compressing objects: 100% (35/35)  remote: Compressing objects: 100% (35/35), done.  remote: Total 39 (delta 35), reused 7 (delta 4), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make[2]: [Makefile:3115: clean-retain-profile] Error 1 (ignored) Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make[2]: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make[2]: *** Waiting for unfinished jobs.... Python/Python-ast.c: In function ‘init_types’: Python/Python-ast.c:5531:1: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without init_types(struct ast_state *state) ^~~~~~~~~~ make[1]: *** [Makefile:875: profile-gen-stamp] Error 2 make: *** [Makefile:887: profile-run-stamp] Error 2 find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL8 LTO + PGO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/568/builds/6524) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/568/builds/6524

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make[2]: [Makefile:3115: clean-retain-profile] Error 1 (ignored) Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make[2]: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile:875: profile-gen-stamp] Error 2 make: *** [Makefile:887: profile-run-stamp] Error 2 find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 RHEL8 LTO 3.x has failed when building commit 1b22d80.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/64/builds/6808) and take a look at the build logs.
  4. Check if the failure is related to this commit (1b22d80) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/64/builds/6808

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 74, done.  remote: Counting objects: 1% (1/74)  remote: Counting objects: 2% (2/74)  remote: Counting objects: 4% (3/74)  remote: Counting objects: 5% (4/74)  remote: Counting objects: 6% (5/74)  remote: Counting objects: 8% (6/74)  remote: Counting objects: 9% (7/74)  remote: Counting objects: 10% (8/74)  remote: Counting objects: 12% (9/74)  remote: Counting objects: 13% (10/74)  remote: Counting objects: 14% (11/74)  remote: Counting objects: 16% (12/74)  remote: Counting objects: 17% (13/74)  remote: Counting objects: 18% (14/74)  remote: Counting objects: 20% (15/74)  remote: Counting objects: 21% (16/74)  remote: Counting objects: 22% (17/74)  remote: Counting objects: 24% (18/74)  remote: Counting objects: 25% (19/74)  remote: Counting objects: 27% (20/74)  remote: Counting objects: 28% (21/74)  remote: Counting objects: 29% (22/74)  remote: Counting objects: 31% (23/74)  remote: Counting objects: 32% (24/74)  remote: Counting objects: 33% (25/74)  remote: Counting objects: 35% (26/74)  remote: Counting objects: 36% (27/74)  remote: Counting objects: 37% (28/74)  remote: Counting objects: 39% (29/74)  remote: Counting objects: 40% (30/74)  remote: Counting objects: 41% (31/74)  remote: Counting objects: 43% (32/74)  remote: Counting objects: 44% (33/74)  remote: Counting objects: 45% (34/74)  remote: Counting objects: 47% (35/74)  remote: Counting objects: 48% (36/74)  remote: Counting objects: 50% (37/74)  remote: Counting objects: 51% (38/74)  remote: Counting objects: 52% (39/74)  remote: Counting objects: 54% (40/74)  remote: Counting objects: 55% (41/74)  remote: Counting objects: 56% (42/74)  remote: Counting objects: 58% (43/74)  remote: Counting objects: 59% (44/74)  remote: Counting objects: 60% (45/74)  remote: Counting objects: 62% (46/74)  remote: Counting objects: 63% (47/74)  remote: Counting objects: 64% (48/74)  remote: Counting objects: 66% (49/74)  remote: Counting objects: 67% (50/74)  remote: Counting objects: 68% (51/74)  remote: Counting objects: 70% (52/74)  remote: Counting objects: 71% (53/74)  remote: Counting objects: 72% (54/74)  remote: Counting objects: 74% (55/74)  remote: Counting objects: 75% (56/74)  remote: Counting objects: 77% (57/74)  remote: Counting objects: 78% (58/74)  remote: Counting objects: 79% (59/74)  remote: Counting objects: 81% (60/74)  remote: Counting objects: 82% (61/74)  remote: Counting objects: 83% (62/74)  remote: Counting objects: 85% (63/74)  remote: Counting objects: 86% (64/74)  remote: Counting objects: 87% (65/74)  remote: Counting objects: 89% (66/74)  remote: Counting objects: 90% (67/74)  remote: Counting objects: 91% (68/74)  remote: Counting objects: 93% (69/74)  remote: Counting objects: 94% (70/74)  remote: Counting objects: 95% (71/74)  remote: Counting objects: 97% (72/74)  remote: Counting objects: 98% (73/74)  remote: Counting objects: 100% (74/74)  remote: Counting objects: 100% (74/74), done.  remote: Compressing objects: 3% (1/31)  remote: Compressing objects: 6% (2/31)  remote: Compressing objects: 9% (3/31)  remote: Compressing objects: 12% (4/31)  remote: Compressing objects: 16% (5/31)  remote: Compressing objects: 19% (6/31)  remote: Compressing objects: 22% (7/31)  remote: Compressing objects: 25% (8/31)  remote: Compressing objects: 29% (9/31)  remote: Compressing objects: 32% (10/31)  remote: Compressing objects: 35% (11/31)  remote: Compressing objects: 38% (12/31)  remote: Compressing objects: 41% (13/31)  remote: Compressing objects: 45% (14/31)  remote: Compressing objects: 48% (15/31)  remote: Compressing objects: 51% (16/31)  remote: Compressing objects: 54% (17/31)  remote: Compressing objects: 58% (18/31)  remote: Compressing objects: 61% (19/31)  remote: Compressing objects: 64% (20/31)  remote: Compressing objects: 67% (21/31)  remote: Compressing objects: 70% (22/31)  remote: Compressing objects: 74% (23/31)  remote: Compressing objects: 77% (24/31)  remote: Compressing objects: 80% (25/31)  remote: Compressing objects: 83% (26/31)  remote: Compressing objects: 87% (27/31)  remote: Compressing objects: 90% (28/31)  remote: Compressing objects: 93% (29/31)  remote: Compressing objects: 96% (30/31)  remote: Compressing objects: 100% (31/31)  remote: Compressing objects: 100% (31/31), done.  remote: Total 39 (delta 35), reused 11 (delta 8), pack-reused 0  From https://github.com/python/cpython * branch main -> FETCH_HEAD Note: switching to '1b22d801b86ed314c4804b19a1fc4b13484e3cea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 1b22d801b8 gh-118518: Allow perf to work without frame pointers (#112254) Switched to and reset branch 'main' Python/perf_jit_trampoline.c: In function ‘perf_map_jit_write_entry’: Python/perf_jit_trampoline.c:578:20: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration] ev.thread_id = gettid(); ^~~~~~ getgid cc1: some warnings being treated as errors make: *** [Makefile:3024: Python/perf_jit_trampoline.o] Error 1 make: *** Waiting for unfinished jobs.... find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory find: ‘build’: No such file or directory make: [Makefile:3115: clean-retain-profile] Error 1 (ignored)
@pablogsal
Copy link
Member Author

On it

@pablogsal
Copy link
Member Author

#118592 for the builedbot failure

@pablogsal
Copy link
Member Author

@namhyung I found another problem. If perf is compiled without libunwind it looks like the unwinding still doesn't work when Python is compiled with -O2 or higher:

perf record --call-graph dwarf,65528 -g -F99 -k1 -- ./python -Xperfjit lol.py perf inject -j -i perf.data -o jit.data perf script -i jit.data | grep 'py::' | sort | uniq -c 

that shows:

 178 7f4527157ae5 py::baz:/home/pablogsal/github/python/main/lol.py+0x5 (/tmp/jitted-3062762-175.so) 

with libunwind-enabled perf and

 178 7f4527157ab5 py::<module>:/home/pablogsal/github/python/main/lol.py+0x5 (/tmp/jitted-3062762-172.so) 178 7f4527157ac5 py::foo:/home/pablogsal/github/python/main/lol.py+0x5 (/tmp/jitted-3062762-173.so) 178 7f4527157ad5 py::bar:/home/pablogsal/github/python/main/lol.py+0x5 (/tmp/jitted-3062762-174.so) 178 7f4527157ae5 py::baz:/home/pablogsal/github/python/main/lol.py+0x5 (/tmp/jitted-3062762-175.so) 

with perf without libunwind support. Any idea of what may be going on?

@pablogsal pablogsal restored the perfjit branch May 6, 2024 15:24
@pablogsal
Copy link
Member Author

Hummmm, wait, this may be something with the versions. I tried to compile the current version on main from the kernel git repo (commit dd5a440a31fae6e459c0d6271dddd62825505361) and that works with libunwind, but the perf version shipped in Arch Linux (perf version 6.7-3) doesn't. Can you confirm that this version should have the fix?

@pablogsal
Copy link
Member Author

Ah, nevermind, all good. Seems that the version in arch linux it's using the v6.7 tag:

https://gitlab.archlinux.org/archlinux/packaging/packages/linux-tools/-/blob/main/.SRCINFO?ref_type=heads#L39

which I suppose it's before 6.7.2 (I was confused by the weird output of perf version)

@pablogsal pablogsal deleted the perfjit branch May 6, 2024 15:39
@namhyung
Copy link
Contributor

namhyung commented May 6, 2024

Yeah, the version number after - is added by distro, usually. -rcN is an exception but I don't think they will ship the rc kernels. v6.7 is before v6.7.2 and doesn't have the fix.

SonicField pushed a commit to SonicField/cpython that referenced this pull request May 8, 2024
@namhyung
Copy link
Contributor

v6.1.91 added the fix.

@pablogsal
Copy link
Member Author

v6.1.91 added the fix.

That's fantastic!

@andreas-schwab
Copy link
Contributor

https://build.opensuse.org/package/live_build_log/openSUSE:Factory:RISCV/python313:base/standard/riscv64

make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/Python-3.13.0b3'
gcc -c -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-generate -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC -DPy_BUILD_CORE -o Python/perf_jit_trampoline.o Python/perf_jit_trampoline.c
Python/perf_jit_trampoline.c:375:6: error: #error "Unsupported target architecture"
375 | # error "Unsupported target architecture"
| ^~~~~
Python/perf_jit_trampoline.c:377:1: error: empty enum is invalid
377 | };
| ^
Python/perf_jit_trampoline.c: In function ‘elf_init_ehframe’:
Python/perf_jit_trampoline.c:458:26: error: ‘DWRF_REG_RA’ undeclared (first use in this function)
458 | DWRF_U8(DWRF_REG_RA); /* Return address register. /
| ^~~~~~~~~~~
Python/perf_jit_trampoline.c:441:9: note: in definition of macro ‘DWRF_SECTION’
441 | stmt;
| ^~~~
Python/perf_jit_trampoline.c:458:18: note: in expansion of macro ‘DWRF_U8’
458 | DWRF_U8(DWRF_REG_RA); /
Return address register. /
| ^~~~~~~
Python/perf_jit_trampoline.c:458:26: note: each undeclared identifier is reported only once for each function it appears in
458 | DWRF_U8(DWRF_REG_RA); /
Return address register. /
| ^~~~~~~~~~~
Python/perf_jit_trampoline.c:441:9: note: in definition of macro ‘DWRF_SECTION’
441 | stmt;
| ^~~~
Python/perf_jit_trampoline.c:458:18: note: in expansion of macro ‘DWRF_U8’
458 | DWRF_U8(DWRF_REG_RA); /
Return address register. */
| ^~~~~~~
Python/perf_jit_trampoline.c:461:53: error: ‘DWRF_REG_SP’ undeclared (first use in this function)
461 | DWRF_U8(DWRF_CFA_def_cfa); DWRF_UV(DWRF_REG_SP); DWRF_UV(sizeof(uintptr_t));
| ^~~~~~~~~~~
Python/perf_jit_trampoline.c:441:9: note: in definition of macro ‘DWRF_SECTION’
441 | stmt;
| ^~~~
Python/perf_jit_trampoline.c:461:45: note: in expansion of macro ‘DWRF_UV’
461 | DWRF_U8(DWRF_CFA_def_cfa); DWRF_UV(DWRF_REG_SP); DWRF_UV(sizeof(uintptr_t));
| ^~~~~~~
Python/perf_jit_trampoline.c:430:64: warning: left-hand operand of comma expression has no effect [-Wunused-value]
430 | #define DWRF_UV(x) (ctx->p = p, elfctx_append_uleb128(ctx, (x)), p = ctx->p)
| ^
Python/perf_jit_trampoline.c:441:9: note: in definition of macro ‘DWRF_SECTION’
441 | stmt;
| ^~~~
Python/perf_jit_trampoline.c:461:45: note: in expansion of macro ‘DWRF_UV’
461 | DWRF_U8(DWRF_CFA_def_cfa); DWRF_UV(DWRF_REG_SP); DWRF_UV(sizeof(uintptr_t));
| ^~~~~~~
Python/perf_jit_trampoline.c:491:6: error: #error "Unsupported target architecture"
491 | # error "Unsupported target architecture"
| ^~~~~
make[2]: *** [Makefile:3037: Python/perf_jit_trampoline.o] Error 1

DWRF_U8(DWRF_CFA_def_cfa_offset); DWRF_UV(8);
/* Extra registers saved for JIT-compiled code. */
#elif defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__)
DWRF_U8(DWRF_CFA_advance_loc | 1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That can't be correct since on aarch64 every insn is 4-byte aligned.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's correct as the code alignment factor on aarch64 is 4 instead of 1 such as on x86_64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
7 participants