--- zzzz-none-000/linux-3.10.107/drivers/tty/sysrq.c 2017-06-27 09:49:32.000000000 +0000 +++ vr9-7490-729/linux-3.10.107/drivers/tty/sysrq.c 2021-11-10 11:53:55.000000000 +0000 @@ -44,6 +44,9 @@ #include #include #include +#if defined(CONFIG_AVM_IPI_YIELD) +#include +#endif/*--- #if defined(CONFIG_AVM_IPI_YIELD) ---*/ #include #include @@ -254,13 +257,31 @@ .enable_mask = SYSRQ_ENABLE_DUMP, }; #endif +#if defined(CONFIG_AVM_IPI_YIELD) +static void per_cpu_sysrq_handle_showregs(void *dummy __maybe_unused) { + struct pt_regs *regs = get_irq_regs(); + if (regs) + show_regs(regs); + perf_event_print_debug(); +} +#endif/*--- #if defined(CONFIG_AVM_IPI_YIELD) ---*/ -static void sysrq_handle_showregs(int key) -{ +static void sysrq_handle_showregs(int key) { struct pt_regs *regs = get_irq_regs(); if (regs) show_regs(regs); perf_event_print_debug(); + +#if defined(CONFIG_AVM_IPI_YIELD) + { + int cpu; + for_each_online_cpu(cpu) { + if(cpu != smp_processor_id()) { + yield_call(cpu, per_cpu_sysrq_handle_showregs, NULL); + } + } + } +#endif/*--- #if defined(CONFIG_AVM_IPI_YIELD) ---*/ } static struct sysrq_key_op sysrq_showregs_op = { .handler = sysrq_handle_showregs,