On Thu, Oct 22, 2020 at 11:58 PM Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > > On Fri, Oct 23, 2020 at 07:36:57AM +0200, Jiri Olsa wrote: > > On Thu, Oct 22, 2020 at 01:00:19PM -0700, Andrii Nakryiko wrote: > > > > SNIP > > > > > > > > > > hi, > > > > FYI there's still no solution yet, so far the progress is: > > > > > > > > the proposed workaround was to use the negation -> we don't have > > > > DW_AT_declaration tag, so let's find out instead which DW_TAG_subprogram > > > > tags have attached code and skip them if they don't have any: > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97060#c10 > > > > > > > > the attached patch is doing that, but the resulting BTF is missing > > > > several functions due to another bug in dwarf: > > > > https://bugzilla.redhat.com/show_bug.cgi?id=1890107 > > > > > > It seems fine if there are only few functions (especially if those are > > > unlikely to be traced). Do you have an estimate of how many functions > > > have this second DWARF bug? > > > > it wasn't that many, I'll recheck > > 127 functions missing if the workaround is applied, list attached > some of those seem pretty useful... I guess the quick workaround in pahole would be to just remember function names that were emitted already. The problem with that is that we can pick a version without parameter names, which is not the end of the world, but certainly annoying. But otherwise, I don't really have a good feeling what's the perfect solution here... > jirka > > > --- > 'acpi_ev_default_region_setup' > 'acpi_ev_pci_bar_region_setup' > 'acpi_ex_pci_bar_space_handler' > 'acpi_ex_stop_trace_opcode' > 'acpi_os_notify_command_complete' > 'arch_cpu_idle_exit' > 'arch_unregister_hw_breakpoint' > 'bfqg_stats_set_start_empty_time' > 'bfqg_stats_set_start_idle_time' > 'bfqg_stats_update_avg_queue_size' > 'bfqg_stats_update_idle_time' > 'bfqg_stats_update_io_merged' > 'blk_freeze_queue' > 'cap_task_setnice' > 'cryptd_aead_queued' > 'devm_regmap_field_bulk_free' > 'disable_nmi_nosync' > 'ext4_ext_release' > 'fs_param_is_path' > 'HUF_isError' > '__ia32_compat_sys_ftruncate' > '__ia32_compat_sys_getsockopt' > '__ia32_compat_sys_io_pgetevents_time32' > '__ia32_compat_sys_preadv64' > '__ia32_compat_sys_process_vm_readv' > '__ia32_compat_sys_process_vm_writev' > '__ia32_compat_sys_pwritev64' > '__ia32_compat_sys_s390_ipc' > '__ia32_compat_sys_setsockopt' > '__ia32_sys_fadvise64' > '__ia32_sys_getegid16' > '__ia32_sys_geteuid16' > '__ia32_sys_getgid16' > '__ia32_sys_getuid16' > '__ia32_sys_inotify_init' > '__ia32_sys_io_pgetevents_time32' > '__ia32_sys_ipc' > '__ia32_sys_munlockall' > '__ia32_sys_old_msgctl' > '__ia32_sys_old_semctl' > '__ia32_sys_old_shmctl' > '__ia32_sys_pciconfig_iobase' > '__ia32_sys_pciconfig_read' > '__ia32_sys_pciconfig_write' > '__ia32_sys_ppoll_time32' > '__ia32_sys_pselect6_time32' > '__ia32_sys_rtas' > '__ia32_sys_s390_ipc' > '__ia32_sys_s390_pci_mmio_read' > '__ia32_sys_s390_pci_mmio_write' > '__ia32_sys_sgetmask' > '__ia32_sys_spu_create' > '__ia32_sys_spu_run' > '__ia32_sys_subpage_prot' > '__ia32_sys_uselib' > '__ia32_sys_vm86' > '__ia32_sys_vm86old' > 'ima_post_path_mknod' > 'ima_show_template_buf' > '__kfifo_skip_r' > 'kstrtol_from_user' > 'mdiobus_read_nested' > 'mdiobus_write_nested' > 'memcpy' > 'memmove' > 'memset' > 'module_arch_freeing_init' > 'native_restore_fl' > 'native_save_fl' > 'netdev_walk_all_lower_dev_rcu' > 'notifier_hangup_irq' > 'nsecs_to_jiffies' > 'of_set_phy_eee_broken' > 'param_set_hexint' > 'param_set_ullong' > 'pcibios_bus_add_device' > 'phy_start_machine' > 'pmdp_collapse_flush' > '_raw_write_unlock' > '_raw_write_unlock_bh' > '_raw_write_unlock_irq' > '_raw_write_unlock_irqrestore' > 'rcu_barrier_tasks_trace' > 'rcu_test_sync_prims' > 'regmap_field_bulk_free' > 'regset_xregset_fpregs_active' > 'seq_hlist_next_rcu' > 'set_anon_super_fc' > 'simple_strtoll' > 'sock_no_getname' > 'sock_no_sendmsg_locked' > 'sock_no_shutdown' > 'synchronize_rcu_tasks' > 'synchronize_rcu_tasks_rude' > 'text_poke_kgdb' > 'tty_driver_kref_put' > 'watchdog_nmi_start' > '__x64_sys_fadvise64' > '__x64_sys_getegid16' > '__x64_sys_geteuid16' > '__x64_sys_getgid16' > '__x64_sys_getuid16' > '__x64_sys_inotify_init' > '__x64_sys_io_pgetevents_time32' > '__x64_sys_ipc' > '__x64_sys_munlockall' > '__x64_sys_old_msgctl' > '__x64_sys_old_semctl' > '__x64_sys_old_shmctl' > '__x64_sys_pciconfig_iobase' > '__x64_sys_pciconfig_read' > '__x64_sys_pciconfig_write' > '__x64_sys_ppoll_time32' > '__x64_sys_pselect6_time32' > '__x64_sys_rtas' > '__x64_sys_s390_ipc' > '__x64_sys_s390_pci_mmio_read' > '__x64_sys_s390_pci_mmio_write' > '__x64_sys_sgetmask' > '__x64_sys_spu_create' > '__x64_sys_spu_run' > '__x64_sys_subpage_prot' > '__x64_sys_uselib' > '__x64_sys_vm86' > '__x64_sys_vm86old' > 'xen_has_pv_nic_devices' >