[Bug 198443] New: KCOV: trace arch/x86/kernel code

6 views
Skip to first unread message

bugzill...@bugzilla.kernel.org

unread,
Jan 10, 2018, 9:36:10 AM1/10/18
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

Bug ID: 198443
Summary: KCOV: trace arch/x86/kernel code
Product: Memory Management
Version: 2.5
Kernel Version: ALL
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: enhancement
Priority: P1
Component: Sanitizers
Assignee: mm_san...@kernel-bugs.kernel.org
Reporter: dvy...@google.com
CC: kasa...@googlegroups.com
Regression: No

Currently code in arch/x86/kernel/Makefile is not instrumented:

# If instrumentation of this dir is enabled, boot hangs during first second.
# Probably could be more selective here, but note that files related to irqs,
# boot, dumpstack/stacktrace, etc are either non-interesting or can lead to
# non-deterministic coverage.
KCOV_INSTRUMENT := n

But the files contain a bunch of syscalls and code invoked from syscalls. E.g.
modity_ldt, set_thread_area. Here is what I've tested and it works (enabled
code with syscall definitions and mentioning copy_to/from_user):

KCOV_INSTRUMENT_i8237.o := n
KCOV_INSTRUMENT_resource.o := n
KCOV_INSTRUMENT_machine_kexec_32.o := n
KCOV_INSTRUMENT_devicetree.o := n
KCOV_INSTRUMENT_apb_timer.o := n
KCOV_INSTRUMENT_smpboot.o := n
KCOV_INSTRUMENT_pvclock.o := n
#KCOV_INSTRUMENT_cpuid.o := n
KCOV_INSTRUMENT_e820.o := n
KCOV_INSTRUMENT_sysfb_efi.o := n
KCOV_INSTRUMENT_setup_percpu.o := n
KCOV_INSTRUMENT_io_delay.o := n
KCOV_INSTRUMENT_paravirt_patch_32.o := n
KCOV_INSTRUMENT_stacktrace.o := n
KCOV_INSTRUMENT_pci-swiotlb.o := n
KCOV_INSTRUMENT_itmt.o := n
KCOV_INSTRUMENT_check.o := n
#KCOV_INSTRUMENT_signal.o := n
KCOV_INSTRUMENT_idt.o := n
KCOV_INSTRUMENT_quirks.o := n
KCOV_INSTRUMENT_tsc_sync.o := n
KCOV_INSTRUMENT_jump_label.o := n
KCOV_INSTRUMENT_time.o := n
#KCOV_INSTRUMENT_ioport.o := n
KCOV_INSTRUMENT_mmconf-fam10h_64.o := n
KCOV_INSTRUMENT_step.o := n
KCOV_INSTRUMENT_crash_dump_32.o := n
KCOV_INSTRUMENT_ftrace.o := n
KCOV_INSTRUMENT_pmem.o := n
KCOV_INSTRUMENT_espfix_64.o := n
KCOV_INSTRUMENT_unwind_guess.o := n
KCOV_INSTRUMENT_kexec-bzimage64.o := n
#KCOV_INSTRUMENT_process_64.o := n
#KCOV_INSTRUMENT_tls.o := n
KCOV_INSTRUMENT_setup.o := n
KCOV_INSTRUMENT_tce_64.o := n
KCOV_INSTRUMENT_reboot.o := n
KCOV_INSTRUMENT_i8253.o := n
KCOV_INSTRUMENT_paravirt-spinlocks.o := n
KCOV_INSTRUMENT_hw_breakpoint.o := n
KCOV_INSTRUMENT_irq_work.o := n
KCOV_INSTRUMENT_pci-calgary_64.o := n
KCOV_INSTRUMENT_audit_64.o := n
KCOV_INSTRUMENT_rtc.o := n
KCOV_INSTRUMENT_irq.o := n
KCOV_INSTRUMENT_unwind_orc.o := n
KCOV_INSTRUMENT_ptrace.o := n
KCOV_INSTRUMENT_early-quirks.o := n
KCOV_INSTRUMENT_probe_roms.o := n
KCOV_INSTRUMENT_traps.o := n
KCOV_INSTRUMENT_ksysfs.o := n
#KCOV_INSTRUMENT_signal_compat.o := n
KCOV_INSTRUMENT_early_printk.o := n
#KCOV_INSTRUMENT_uprobes.o := n
KCOV_INSTRUMENT_paravirt.o := n
KCOV_INSTRUMENT_vsmp_64.o := n
KCOV_INSTRUMENT_irq_64.o := n
KCOV_INSTRUMENT_mpparse.o := n
KCOV_INSTRUMENT_sysfb.o := n
KCOV_INSTRUMENT_asm-offsets_64.o := n
KCOV_INSTRUMENT_dumpstack.o := n
KCOV_INSTRUMENT_aperture_64.o := n
KCOV_INSTRUMENT_asm-offsets.o := n
KCOV_INSTRUMENT_dumpstack_32.o := n
KCOV_INSTRUMENT_head32.o := n
KCOV_INSTRUMENT_livepatch.o := n
KCOV_INSTRUMENT_irqinit.o := n
KCOV_INSTRUMENT_amd_nb.o := n
KCOV_INSTRUMENT_tboot.o := n
KCOV_INSTRUMENT_tracepoint.o := n
KCOV_INSTRUMENT_amd_gart_64.o := n
KCOV_INSTRUMENT_unwind_frame.o := n
KCOV_INSTRUMENT_head64.o := n
KCOV_INSTRUMENT_sysfb_simplefb.o := n
KCOV_INSTRUMENT_paravirt_patch_64.o := n
KCOV_INSTRUMENT_reboot_fixups_32.o := n
KCOV_INSTRUMENT_kvmclock.o := n
KCOV_INSTRUMENT_doublefault.o := n
KCOV_INSTRUMENT_hpet.o := n
KCOV_INSTRUMENT_crash.o := n
KCOV_INSTRUMENT_pci-nommu.o := n
KCOV_INSTRUMENT_apm_32.o := n
KCOV_INSTRUMENT_pci-dma.o := n
KCOV_INSTRUMENT_dumpstack_64.o := n
KCOV_INSTRUMENT_pci-iommu_table.o := n
KCOV_INSTRUMENT_tsc.o := n
KCOV_INSTRUMENT_alternative.o := n
#KCOV_INSTRUMENT_msr.o := n
KCOV_INSTRUMENT_machine_kexec_64.o := n
KCOV_INSTRUMENT_nmi.o := n
#KCOV_INSTRUMENT_ldt.o := n
#KCOV_INSTRUMENT_vm86_32.o := n
KCOV_INSTRUMENT_trace_clock.o := n
KCOV_INSTRUMENT_perf_regs.o := n
KCOV_INSTRUMENT_bootflag.o := n
KCOV_INSTRUMENT_i8259.o := n
KCOV_INSTRUMENT_nmi_selftest.o := n
KCOV_INSTRUMENT_crash_dump_64.o := n
KCOV_INSTRUMENT_pcspeaker.o := n
KCOV_INSTRUMENT_kvm.o := n
KCOV_INSTRUMENT_kdebugfs.o := n
KCOV_INSTRUMENT_module.o := n
KCOV_INSTRUMENT_x86_init.o := n
KCOV_INSTRUMENT_asm-offsets_32.o := n
KCOV_INSTRUMENT_kgdb.o := n
KCOV_INSTRUMENT_topology.o := n
KCOV_INSTRUMENT_irq_32.o := n
KCOV_INSTRUMENT_platform-quirks.o := n
#KCOV_INSTRUMENT_process_32.o := n
#KCOV_INSTRUMENT_sys_x86_64.o := n
KCOV_INSTRUMENT_tsc_msr.o := n
KCOV_INSTRUMENT_smp.o := n
KCOV_INSTRUMENT_ebda.o := n
KCOV_INSTRUMENT_eisa.o := n
KCOV_INSTRUMENT_process.o := n
Need to understand what exactly files need to be disabled and upstream this.
I've also tried the following and it does not yet boot:

KCOV_INSTRUMENT_head$(BITS).o := n
KCOV_INSTRUMENT_setup.o := n
KCOV_INSTRUMENT_dumpstack.o := n
KCOV_INSTRUMENT_dumpstack_$(BITS).o := n
KCOV_INSTRUMENT_stacktrace.o := n
KCOV_INSTRUMENT_relocate_kernel_$(BITS).o := n
KCOV_INSTRUMENT_ftrace_$(BITS).o := n
KCOV_INSTRUMENT_test_nx.o := n
KCOV_INSTRUMENT_paravirt_patch_$(BITS).o := n
KCOV_INSTRUMENT_tsc.o := n
KCOV_INSTRUMENT_paravirt-spinlocks.o := n
KCOV_INSTRUMENT_pvclock.o := n
KCOV_INSTRUMENT_kvmclock.o := n
KCOV_INSTRUMENT_ftrace.o := n
KCOV_INSTRUMENT_early_printk.o := n

--
You are receiving this mail because:
You are on the CC list for the bug.

bugzill...@bugzilla.kernel.org

unread,
Jan 10, 2018, 9:36:20 AM1/10/18
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

Dmitry Vyukov (dvy...@google.com) changed:

What |Removed |Added
----------------------------------------------------------------------------
Priority|P1 |P2

bugzill...@bugzilla.kernel.org

unread,
Sep 19, 2018, 5:03:29 AM9/19/18
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

Dmitry Vyukov (dvy...@google.com) changed:

What |Removed |Added
----------------------------------------------------------------------------
Assignee|mm_sanitizers@kernel-bugs.k |dvy...@google.com
|ernel.org |

bugzill...@kernel.org

unread,
May 2, 2023, 2:47:20 AM5/2/23
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

--- Comment #1 from Dmitry Vyukov (dvy...@google.com) ---
Probably makes more sense to do as a allowlist instead:

KCOV_INSTRUMENT := n
KCOV_INSTRUMENT_foo := y

--
You may reply to this email to add a comment.

bugzill...@kernel.org

unread,
May 5, 2023, 12:46:54 AM5/5/23
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

xupengfe (pengf...@intel.com) changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |pengf...@intel.com

--- Comment #2 from xupengfe (pengf...@intel.com) ---
We also found this issue when syzkaller test.
Is there some one help to fix this issue for KCOV_INSTRUMENT?

Thanks!
BR.

--
You may reply to this email to add a comment.

bugzill...@kernel.org

unread,
Jun 1, 2023, 5:44:22 AM6/1/23
to kasa...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=198443

--- Comment #3 from xupengfe (pengf...@intel.com) ---
I found I could use below item and enable at least SHSTK test.
KCOV_INSTRUMENT_alternative.o :=n
KCOV_INSTRUMENT_amd_gart_64.o :=n
KCOV_INSTRUMENT_amd_nb.o :=n
KCOV_INSTRUMENT_aperture_64.o :=n
KCOV_INSTRUMENT_audit_64.o :=n
KCOV_INSTRUMENT_bootflag.o :=n
KCOV_INSTRUMENT_callthunks.o :=n
KCOV_INSTRUMENT_check.o :=n
KCOV_INSTRUMENT_cpuid.mod.o :=n
KCOV_INSTRUMENT_cpuid.o :=n
KCOV_INSTRUMENT_crash_core_64.o :=n
KCOV_INSTRUMENT_crash_dump_64.o :=n
KCOV_INSTRUMENT_crash.o :=n
KCOV_INSTRUMENT_devicetree.o :=n
KCOV_INSTRUMENT_dumpstack_64.o :=n
KCOV_INSTRUMENT_dumpstack.o :=n
KCOV_INSTRUMENT_e820.o :=n
KCOV_INSTRUMENT_early_printk.o :=n
KCOV_INSTRUMENT_early-quirks.o :=n
KCOV_INSTRUMENT_ebda.o :=n
KCOV_INSTRUMENT_espfix_64.o :=n
KCOV_INSTRUMENT_ftrace_64.o :=n
KCOV_INSTRUMENT_ftrace.o :=n
KCOV_INSTRUMENT_head_64.o :=n
KCOV_INSTRUMENT_head64.o :=n
KCOV_INSTRUMENT_hpet.o :=n
KCOV_INSTRUMENT_hw_breakpoint.o :=n
KCOV_INSTRUMENT_i8237.o :=n
KCOV_INSTRUMENT_i8253.o :=n
KCOV_INSTRUMENT_i8259.o :=n
KCOV_INSTRUMENT_idt.o :=n
KCOV_INSTRUMENT_io_delay.o :=n
KCOV_INSTRUMENT_ioport.o :=n
KCOV_INSTRUMENT_irq_64.o :=n
KCOV_INSTRUMENT_irqflags.o :=n
KCOV_INSTRUMENT_irqinit.o :=n
KCOV_INSTRUMENT_irq.o :=n
KCOV_INSTRUMENT_irq_work.o :=n
KCOV_INSTRUMENT_itmt.o :=n
KCOV_INSTRUMENT_jailhouse.o :=n
KCOV_INSTRUMENT_jump_label.o :=n
KCOV_INSTRUMENT_kdebugfs.o :=n
KCOV_INSTRUMENT_kexec-bzimage64.o :=n
KCOV_INSTRUMENT_kgdb.o :=n
KCOV_INSTRUMENT_ksysfs.o :=n
KCOV_INSTRUMENT_kvmclock.o :=n
KCOV_INSTRUMENT_kvm.o :=n
KCOV_INSTRUMENT_ldt.o :=n
KCOV_INSTRUMENT_machine_kexec_64.o :=n
KCOV_INSTRUMENT_mmconf-fam10h_64.o :=n
KCOV_INSTRUMENT_module.o :=n
KCOV_INSTRUMENT_mpparse.o :=n
KCOV_INSTRUMENT_msr.o :=n
KCOV_INSTRUMENT_nmi.o :=n
KCOV_INSTRUMENT_paravirt.o :=n
KCOV_INSTRUMENT_paravirt-spinlocks.o :=n
KCOV_INSTRUMENT_pci-dma.o :=n
KCOV_INSTRUMENT_pcspeaker.o :=n
KCOV_INSTRUMENT_perf_regs.o :=n
KCOV_INSTRUMENT_platform-quirks.o :=n
KCOV_INSTRUMENT_pmem.o :=n
KCOV_INSTRUMENT_probe_roms.o :=n
KCOV_INSTRUMENT_process_64.o :=n
KCOV_INSTRUMENT_process.o :=n
KCOV_INSTRUMENT_ptrace.o :=n
KCOV_INSTRUMENT_pvclock.o :=n
KCOV_INSTRUMENT_quirks.o :=n
KCOV_INSTRUMENT_reboot.o :=n
KCOV_INSTRUMENT_relocate_kernel_64.o :=n
KCOV_INSTRUMENT_resource.o :=n
KCOV_INSTRUMENT_rethook.o :=n
KCOV_INSTRUMENT_rtc.o :=n
KCOV_INSTRUMENT_sched_ipcc.o :=n
KCOV_INSTRUMENT_setup.o :=n
KCOV_INSTRUMENT_setup_percpu.o :=n
KCOV_INSTRUMENT_sev.o :=n
KCOV_INSTRUMENT_signal_32.o :=n
KCOV_INSTRUMENT_signal_64.o :=n
KCOV_INSTRUMENT_signal.o :=n
KCOV_INSTRUMENT_smpboot.o :=n
KCOV_INSTRUMENT_smp.o :=n
KCOV_INSTRUMENT_stacktrace.o :=n
KCOV_INSTRUMENT_static_call.o :=n
KCOV_INSTRUMENT_step.o :=n
KCOV_INSTRUMENT_sys_ia32.o :=n
KCOV_INSTRUMENT_sys_x86_64.o :=n
KCOV_INSTRUMENT_tboot.o :=n
KCOV_INSTRUMENT_time.o :=n
KCOV_INSTRUMENT_tls.o :=n
KCOV_INSTRUMENT_topology.o :=n
KCOV_INSTRUMENT_trace_clock.o :=n
KCOV_INSTRUMENT_trace.o :=n
KCOV_INSTRUMENT_tracepoint.o :=n
KCOV_INSTRUMENT_traps.o :=n
KCOV_INSTRUMENT_tsc_msr.o :=n
KCOV_INSTRUMENT_tsc.o :=n
KCOV_INSTRUMENT_tsc_sync.o :=n
KCOV_INSTRUMENT_umip.o :=n
KCOV_INSTRUMENT_unwind_frame.o :=n
KCOV_INSTRUMENT_uprobes.o :=n
KCOV_INSTRUMENT_vsmp_64.o :=n
KCOV_INSTRUMENT_x86_init.o :=n


I will do more testing to think out some good way for it.
Thanks a lot for Dmitry's guidance!

Thanks!

--
You may reply to this email to add a comment.

Reply all
Reply to author
Forward
0 new messages