Message ID | 20230829063457.54157-1-bgray@linux.ibm.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix preemption errors in watchpoints | expand |
On 29/8/23 4:34 pm, Benjamin Gray wrote: > When enabling debug config options relating to preemption, several bugs > appear in the kernel log. With this series applied, the breakpoint code > no longer prints bugs when running the powerpc/ptrace selftests. > > Benjamin Gray (3): > powerpc/watchpoints: Disable preemption in thread_change_pc() > powerpc/watchpoint: Disable pagefaults when getting user instruction > powerpc/watchpoints: Annotate atomic context in more places > > arch/powerpc/kernel/hw_breakpoint.c | 16 +++++++++++++++- > arch/powerpc/kernel/hw_breakpoint_constraints.c | 7 ++++++- > 2 files changed, 21 insertions(+), 2 deletions(-) > > -- > 2.41.0 The particular config is below, used by appending to a ppc64le_guest_defconfig. Not all options are relevant. Tested on a Power8 and Power10 machine (1 and 2 watchpoints). CONFIG_LOCALVERSION="-watchpoint-sleep" CONFIG_GENERIC_IRQ_DEBUGFS=y CONFIG_PREEMPT=y CONFIG_PRINTK_INDEX=y CONFIG_CGROUP_DEBUG=y CONFIG_PPC_KUAP_DEBUG=y CONFIG_SCOM_DEBUGFS=y CONFIG_UDBG_RTAS_CONSOLE=y CONFIG_RELOCATABLE_TEST=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y CONFIG_STATIC_KEYS_SELFTEST=y CONFIG_MODULE_DEBUG=y CONFIG_MODULE_STATS=y CONFIG_MODULE_DEBUG_AUTOLOAD_DUPS_TRACE=y CONFIG_CMA_DEBUGFS=y CONFIG_CMA_SYSFS=y CONFIG_PERCPU_STATS=y CONFIG_USERFAULTFD=y CONFIG_VALIDATE_FS_PARSER=y CONFIG_EXT4_DEBUG=y CONFIG_HARDENED_USERCOPY=y CONFIG_FORTIFY_SOURCE=y CONFIG_DYNAMIC_DEBUG=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_SPLIT=y CONFIG_GDB_SCRIPTS=y CONFIG_READABLE_ASM=y CONFIG_NET_DEV_REFCNT_TRACKER=y CONFIG_NET_NS_REFCNT_TRACKER=y CONFIG_DEBUG_NET=y CONFIG_DEBUG_PAGEALLOC=y CONFIG_SLUB_DEBUG_ON=y CONFIG_PTDUMP_DEBUGFS=y CONFIG_DEBUG_KMEMLEAK=y CONFIG_PER_VMA_LOCK_STATS=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_SELFTEST=y CONFIG_DEBUG_OBJECTS_FREE=y CONFIG_DEBUG_OBJECTS_TIMERS=y CONFIG_DEBUG_OBJECTS_WORK=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y CONFIG_SHRINKER_DEBUG=y CONFIG_SCHED_STACK_END_CHECK=y CONFIG_DEBUG_VM=y CONFIG_DEBUG_VM_MAPLE_TREE=y CONFIG_DEBUG_VM_RB=y CONFIG_DEBUG_VM_PGFLAGS=y CONFIG_DEBUG_VM_PGTABLE=y CONFIG_DEBUG_VIRTUAL=y CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_DEBUG_SHIRQ=y CONFIG_WQ_WATCHDOG=y CONFIG_DEBUG_TIMEKEEPING=y CONFIG_DEBUG_PREEMPT=y CONFIG_PROVE_LOCKING=y CONFIG_LOCK_STAT=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_DEBUG_LOCKING_API_SELFTESTS=y CONFIG_CSD_LOCK_WAIT_DEBUG=y CONFIG_DEBUG_IRQFLAGS=y CONFIG_WARN_ALL_UNSEEDED_RANDOM=y CONFIG_DEBUG_NOTIFIERS=y CONFIG_DEBUG_CREDENTIALS=y CONFIG_RCU_CPU_STALL_CPUTIME=y CONFIG_RCU_EQS_DEBUG=y CONFIG_DEBUG_WQ_FORCE_RR_CPU=y CONFIG_CPU_HOTPLUG_STATE_CONTROL=y CONFIG_LATENCYTOP=y CONFIG_PPC_IRQ_SOFT_MASK_DEBUG=y CONFIG_PPC_RFI_SRR_DEBUG=y
On Tue, 29 Aug 2023 16:34:54 +1000, Benjamin Gray wrote: > When enabling debug config options relating to preemption, several bugs > appear in the kernel log. With this series applied, the breakpoint code > no longer prints bugs when running the powerpc/ptrace selftests. > > Benjamin Gray (3): > powerpc/watchpoints: Disable preemption in thread_change_pc() > powerpc/watchpoint: Disable pagefaults when getting user instruction > powerpc/watchpoints: Annotate atomic context in more places > > [...] Applied to powerpc/fixes. [1/3] powerpc/watchpoints: Disable preemption in thread_change_pc() https://git.kernel.org/powerpc/c/cc879ab3ce39bc39f9b1d238b283f43a5f6f957d [2/3] powerpc/watchpoint: Disable pagefaults when getting user instruction https://git.kernel.org/powerpc/c/3241f260eb830d27d09cc604690ec24533fdb433 [3/3] powerpc/watchpoints: Annotate atomic context in more places https://git.kernel.org/powerpc/c/27646b2e02b096a6936b3e3b6ba334ae20763eab cheers