# git gc Expanding reachable commits in commit graph: 51314 Expanding reachable commits in commit graph: 106934 Expanding reachable commits in commit graph: 161389 Expanding reachable commits in commit graph: 218174 Expanding reachable commits in commit graph: 271495 Expanding reachable commits in commit graph: 330175 Expanding reachable commits in commit graph: 388223 Expanding reachable commits in commit graph: 446958 Expanding reachable commits in commit graph: 506209 Expanding reachable commits in commit graph: 557362 Expanding reachable commits in commit graph: 619016 Expanding reachable commits in commit graph: 681874 Expanding reachable commits in commit graph: 743727 Expanding reachable commits in commit graph: 808068 Expanding reachable commits in commit graph: 873096 Expanding reachable commits in commit graph: 939783 Expanding reachable commits in commit graph: 1007577 Expanding reachable commits in commit graph: 1054854 Expanding reachable commits in commit graph: 1124552 Expanding reachable commits in commit graph: 1196339 Expanding reachable commits in commit graph: 1268851 Expanding reachable commits in commit graph: 1305130, done. Finding extra edges in commit graph: 43% (569154/1305130) Finding extra edges in commit graph: 44% (574258/1305130) Finding extra edges in commit graph: 45% (587309/1305130) Finding extra edges in commit graph: 46% (600360/1305130) Finding extra edges in commit graph: 47% (613412/1305130) Finding extra edges in commit graph: 48% (626463/1305130) Finding extra edges in commit graph: 49% (639514/1305130) Finding extra edges in commit graph: 50% (652565/1305130) Finding extra edges in commit graph: 51% (665617/1305130) Finding extra edges in commit graph: 52% (678668/1305130) Finding extra edges in commit graph: 53% (691719/1305130) Finding extra edges in commit graph: 54% (704771/1305130) Finding extra edges in commit graph: 55% (717822/1305130) Finding extra edges in commit graph: 56% (730873/1305130) Finding extra edges in commit graph: 57% (743925/1305130) Finding extra edges in commit graph: 58% (756976/1305130) Finding extra edges in commit graph: 59% (770027/1305130) Finding extra edges in commit graph: 60% (783078/1305130) Finding extra edges in commit graph: 61% (796130/1305130) Finding extra edges in commit graph: 62% (809181/1305130) Finding extra edges in commit graph: 63% (822232/1305130) Finding extra edges in commit graph: 64% (835284/1305130) Finding extra edges in commit graph: 65% (848335/1305130) Finding extra edges in commit graph: 66% (861386/1305130) Finding extra edges in commit graph: 67% (874438/1305130) Finding extra edges in commit graph: 68% (887489/1305130) Finding extra edges in commit graph: 69% (900540/1305130) Finding extra edges in commit graph: 70% (913591/1305130) Finding extra edges in commit graph: 71% (926643/1305130) Finding extra edges in commit graph: 72% (939694/1305130) Finding extra edges in commit graph: 73% (952745/1305130) Finding extra edges in commit graph: 74% (965797/1305130) Finding extra edges in commit graph: 75% (978848/1305130) Finding extra edges in commit graph: 76% (991899/1305130) Finding extra edges in commit graph: 77% (1004951/1305130) Finding extra edges in commit graph: 78% (1018002/1305130) Finding extra edges in commit graph: 79% (1031053/1305130) Finding extra edges in commit graph: 80% (1044104/1305130) Finding extra edges in commit graph: 81% (1057156/1305130) Finding extra edges in commit graph: 82% (1070207/1305130) Finding extra edges in commit graph: 83% (1083258/1305130) Finding extra edges in commit graph: 84% (1096310/1305130) Finding extra edges in commit graph: 85% (1109361/1305130) Finding extra edges in commit graph: 86% (1122412/1305130) Finding extra edges in commit graph: 87% (1135464/1305130) Finding extra edges in commit graph: 88% (1148515/1305130) Finding extra edges in commit graph: 89% (1161566/1305130) Finding extra edges in commit graph: 90% (1174617/1305130) Finding extra edges in commit graph: 91% (1187669/1305130) Finding extra edges in commit graph: 92% (1200720/1305130) Finding extra edges in commit graph: 93% (1213771/1305130) Finding extra edges in commit graph: 94% (1226823/1305130) Finding extra edges in commit graph: 95% (1239874/1305130) Finding extra edges in commit graph: 96% (1252925/1305130) Finding extra edges in commit graph: 97% (1265977/1305130) Finding extra edges in commit graph: 98% (1279028/1305130) Finding extra edges in commit graph: 99% (1292079/1305130) Finding extra edges in commit graph: 100% (1305130/1305130) Finding extra edges in commit graph: 100% (1305130/1305130), done. Writing out commit graph in 4 passes: 54% (2824787/5220520) Writing out commit graph in 4 passes: 55% (2871286/5220520) Writing out commit graph in 4 passes: 56% (2923492/5220520) Writing out commit graph in 4 passes: 57% (2975697/5220520) Writing out commit graph in 4 passes: 58% (3027902/5220520) Writing out commit graph in 4 passes: 59% (3080107/5220520) Writing out commit graph in 4 passes: 60% (3132312/5220520) Writing out commit graph in 4 passes: 60% (3146525/5220520) Writing out commit graph in 4 passes: 61% (3184518/5220520) Writing out commit graph in 4 passes: 62% (3236723/5220520) Writing out commit graph in 4 passes: 63% (3288928/5220520) Writing out commit graph in 4 passes: 64% (3341133/5220520) Writing out commit graph in 4 passes: 65% (3393338/5220520) Writing out commit graph in 4 passes: 66% (3445544/5220520) Writing out commit graph in 4 passes: 66% (3476137/5220520) Writing out commit graph in 4 passes: 67% (3497749/5220520) Writing out commit graph in 4 passes: 68% (3549954/5220520) Writing out commit graph in 4 passes: 69% (3602159/5220520) Writing out commit graph in 4 passes: 70% (3654364/5220520) Writing out commit graph in 4 passes: 71% (3706570/5220520) Writing out commit graph in 4 passes: 72% (3758775/5220520) Writing out commit graph in 4 passes: 72% (3798487/5220520) Writing out commit graph in 4 passes: 73% (3810980/5220520) Writing out commit graph in 4 passes: 74% (3863185/5220520) Writing out commit graph in 4 passes: 75% (3915390/5220520) Writing out commit graph in 4 passes: 76% (3967596/5220520) Writing out commit graph in 4 passes: 77% (4019801/5220520) Writing out commit graph in 4 passes: 78% (4072006/5220520) Writing out commit graph in 4 passes: 79% (4124211/5220520) Writing out commit graph in 4 passes: 80% (4176416/5220520) Writing out commit graph in 4 passes: 81% (4228622/5220520) Writing out commit graph in 4 passes: 82% (4280827/5220520) Writing out commit graph in 4 passes: 83% (4333032/5220520) Writing out commit graph in 4 passes: 84% (4385237/5220520) Writing out commit graph in 4 passes: 85% (4437442/5220520) Writing out commit graph in 4 passes: 86% (4489648/5220520) Writing out commit graph in 4 passes: 87% (4541853/5220520) Writing out commit graph in 4 passes: 88% (4594058/5220520) Writing out commit graph in 4 passes: 89% (4646263/5220520) Writing out commit graph in 4 passes: 90% (4698468/5220520) Writing out commit graph in 4 passes: 91% (4750674/5220520) Writing out commit graph in 4 passes: 92% (4802879/5220520) Writing out commit graph in 4 passes: 93% (4855084/5220520) Writing out commit graph in 4 passes: 94% (4907289/5220520) Writing out commit graph in 4 passes: 95% (4959494/5220520) Writing out commit graph in 4 passes: 96% (5011700/5220520) Writing out commit graph in 4 passes: 97% (5063905/5220520) Writing out commit graph in 4 passes: 98% (5116110/5220520) Writing out commit graph in 4 passes: 99% (5168315/5220520) Writing out commit graph in 4 passes: 100% (5220520/5220520) Writing out commit graph in 4 passes: 100% (5220520/5220520), done. # git rev-parse -q --verify af9c191ac2a0c857f59d75b6812fef078ab1cefe^{commit} # git fetch -q -n -f git://fs.ozlabs.ibm.com/kernel/linus master # git rev-parse -q --verify af9c191ac2a0c857f59d75b6812fef078ab1cefe^{commit} af9c191ac2a0c857f59d75b6812fef078ab1cefe # git checkout -q -f -B kisskb af9c191ac2a0c857f59d75b6812fef078ab1cefe # git clean -qxdf # < git log -1 # commit af9c191ac2a0c857f59d75b6812fef078ab1cefe # Merge: dd609b8a3a1f 75d7ff9aa0ae # Author: Linus Torvalds # Date: Sun Sep 22 09:47:16 2024 -0700 # # Merge tag 'trace-ring-buffer-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace # # Pull ring-buffer updates from Steven Rostedt: # # - tracing/ring-buffer: persistent buffer across reboots # # This allows for the tracing instance ring buffer to stay persistent # across reboots. The way this is done is by adding to the kernel # command line: # # trace_instance=boot_map@0x285400000:12M # # This will reserve 12 megabytes at the address 0x285400000, and then # map the tracing instance "boot_map" ring buffer to that memory. This # will appear as a normal instance in the tracefs system: # # /sys/kernel/tracing/instances/boot_map # # A user could enable tracing in that instance, and on reboot or kernel # crash, if the memory is not wiped by the firmware, it will recreate # the trace in that instance. For example, if one was debugging a # shutdown of a kernel reboot: # # # cd /sys/kernel/tracing # # echo function > instances/boot_map/current_tracer # # reboot # [..] # # cd /sys/kernel/tracing # # tail instances/boot_map/trace # swapper/0-1 [000] d..1. 164.549800: restore_boot_irq_mode <-native_machine_shutdown # swapper/0-1 [000] d..1. 164.549801: native_restore_boot_irq_mode <-native_machine_shutdown # swapper/0-1 [000] d..1. 164.549802: disconnect_bsp_APIC <-native_machine_shutdown # swapper/0-1 [000] d..1. 164.549811: hpet_disable <-native_machine_shutdown # swapper/0-1 [000] d..1. 164.549812: iommu_shutdown_noop <-native_machine_restart # swapper/0-1 [000] d..1. 164.549813: native_machine_emergency_restart <-__do_sys_reboot # swapper/0-1 [000] d..1. 164.549813: tboot_shutdown <-native_machine_emergency_restart # swapper/0-1 [000] d..1. 164.549820: acpi_reboot <-native_machine_emergency_restart # swapper/0-1 [000] d..1. 164.549821: acpi_reset <-acpi_reboot # swapper/0-1 [000] d..1. 164.549822: acpi_os_write_port <-acpi_reboot # # On reboot, the buffer is examined to make sure it is valid. The # validation check even steps through every event to make sure the meta # data of the event is correct. If any test fails, it will simply reset # the buffer, and the buffer will be empty on boot. # # - Allow the tracing persistent boot buffer to use the "reserve_mem" # option # # Instead of having the admin find a physical address to store the # persistent buffer, which can be very tedious if they have to # administrate several different machines, allow them to use the # "reserve_mem" option that will find a location for them. It is not as # reliable because of KASLR, as the loading of the kernel in different # locations can cause the memory allocated to be inconsistent. Booting # with "nokaslr" can make reserve_mem more reliable. # # - Have function graph tracer handle offsets from a previous boot. # # The ring buffer output from a previous boot may have different # addresses due to kaslr. Have the function graph tracer handle these # by using the delta from the previous boot to the new boot address # space. # # - Only reset the saved meta offset when the buffer is started or reset # # In the persistent memory meta data, it holds the previous address # space information, so that it can calculate the delta to have # function tracing work. But this gets updated after being read to hold # the new address space. But if the buffer isn't used for that boot, on # reboot, the delta is now calculated from the previous boot and not # the boot that holds the data in the ring buffer. This causes the # functions not to be shown. Do not save the address space information # of the current kernel until it is being recorded. # # - Add a magic variable to test the valid meta data # # Add a magic variable in the meta data that can also be used for # validation. The validator of the previous buffer doesn't need this # magic data, but it can be used if the meta data is changed by a new # kernel, which may have the same format that passes the validator but # is used differently. This magic number can also be used as a # "versioning" of the meta data. # # - Align user space mapped ring buffer sub buffers to improve TLB # entries # # Linus mentioned that the mapped ring buffer sub buffers were # misaligned between the meta page and the sub-buffers, so that if the # sub-buffers were bigger than PAGE_SIZE, it wouldn't allow the TLB to # use bigger entries. # # - Add new kernel command line "traceoff" to disable tracing on boot for # instances # # If tracing is enabled for a boot instance, there needs a way to be # able to disable it on boot so that new events do not get entered into # the ring buffer and be mixed with events from a previous boot, as # that can be confusing. # # - Allow trace_printk() to go to other instances # # Currently, trace_printk() can only go to the top level instance. When # debugging with a persistent buffer, it is really useful to be able to # add trace_printk() to go to that buffer, so that you have access to # them after a crash. # # - Do not use "bin_printk()" for traces to a boot instance # # The bin_printk() saves only a pointer to the printk format in the # ring buffer, as the reader of the buffer can still have access to it. # But this is not the case if the buffer is from a previous boot. If # the trace_printk() is going to a "persistent" buffer, it will use the # slower version that writes the printk format into the buffer. # # - Add command line option to allow trace_printk() to go to an instance # # Allow the kernel command line to define which instance the # trace_printk() goes to, instead of forcing the admin to set it for # every boot via the tracefs options. # # - Start a document that explains how to use tracefs to debug the kernel # # - Add some more kernel selftests to test user mapped ring buffer # # * tag 'trace-ring-buffer-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (28 commits) # selftests/ring-buffer: Handle meta-page bigger than the system # selftests/ring-buffer: Verify the entire meta-page padding # tracing/Documentation: Start a document on how to debug with tracing # tracing: Add option to set an instance to be the trace_printk destination # tracing: Have trace_printk not use binary prints if boot buffer # tracing: Allow trace_printk() to go to other instance buffers # tracing: Add "traceoff" flag to boot time tracing instances # ring-buffer: Align meta-page to sub-buffers for improved TLB usage # ring-buffer: Add magic and struct size to boot up meta data # ring-buffer: Don't reset persistent ring-buffer meta saved addresses # tracing/fgraph: Have fgraph handle previous boot function addresses # tracing: Allow boot instances to use reserve_mem boot memory # tracing: Fix ifdef of snapshots to not prevent last_boot_info file # ring-buffer: Use vma_pages() helper function # tracing: Fix NULL vs IS_ERR() check in enable_instances() # tracing: Add last boot delta offset for stack traces # tracing: Update function tracing output for previous boot buffer # tracing: Handle old buffer mappings for event strings and functions # tracing/ring-buffer: Add last_boot_info file to boot instance # ring-buffer: Save text and data locations in mapped meta data # ... # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 af9c191ac2a0c857f59d75b6812fef078ab1cefe # make -s -j 24 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- allmodconfig # < make -s -j 24 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- help # make -s -j 24 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- olddefconfig # make -s -j 24 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- :1519:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sparc/vdso/vclock_gettime.c:254:1: error: no previous prototype for '__vdso_clock_gettime' [-Werror=missing-prototypes] 254 | __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:282:1: error: no previous prototype for '__vdso_clock_gettime_stick' [-Werror=missing-prototypes] 282 | __vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:307:1: error: no previous prototype for '__vdso_gettimeofday' [-Werror=missing-prototypes] 307 | __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:343:1: error: no previous prototype for '__vdso_gettimeofday_stick' [-Werror=missing-prototypes] 343 | __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[5]: *** [/kisskb/src/scripts/Makefile.build:244: arch/sparc/vdso/vclock_gettime.o] Error 1 make[4]: *** [/kisskb/src/scripts/Makefile.build:485: arch/sparc/vdso] Error 2 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:485: arch/sparc] Error 2 make[3]: *** Waiting for unfinished jobs.... /kisskb/src/kernel/fork.c: In function '__do_sys_clone3': /kisskb/src/kernel/fork.c:3078:2: error: #warning clone3() entry point is missing, please fix [-Werror=cpp] 3078 | #warning clone3() entry point is missing, please fix | ^~~~~~~ cc1: all warnings being treated as errors make[4]: *** [/kisskb/src/scripts/Makefile.build:244: kernel/fork.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:485: kernel] Error 2 make[2]: *** [/kisskb/src/Makefile:1926: .] Error 2 make[1]: *** [/kisskb/src/Makefile:224: __sub-make] Error 2 make: *** [Makefile:224: __sub-make] Error 2 Command 'make -s -j 24 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- ' returned non-zero exit status 2. # rm -rf /kisskb/build/linus_allmodconfig_sparc64-gcc13 # Build took: 0:43:13.883053