Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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
Include/cpython/sysmodule.h Outdated Show resolved Hide resolved
@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
54 of 55 checks passed
@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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.