Hi Steven,
as discussed in today's call, I've pushed my v4.4.280 merge attempt
to my korg git tree into the v4.4-rt-next branch
- git://git.kernel.org/pub/scm/linux/kernel/git/wagi/linux-stable-rt.git
- v4.4-rt-next
If I revert "futex: Futex_unlock_pi() determinism" pi_stress will work.
With the patch applied the process just hangs. I've attached gdb to see
what's going on in this case:
(gdb) bt
#0 rdtsc () at /home/wagi/rt/v4.4-rt/arch/x86/include/asm/msr.h:136
#1 rdtsc_ordered () at /home/wagi/rt/v4.4-rt/arch/x86/include/asm/msr.h:161
#2 delay_tsc (__loops=3571228) at
/home/wagi/rt/v4.4-rt/arch/x86/lib/delay.c:60
#3 0xffffffff8141fc96 in __delay (loops=<optimized out>) at
/home/wagi/rt/v4.4-rt/arch/x86/lib/delay.c:160
#4 __const_udelay (xloops=<optimized out>) at
/home/wagi/rt/v4.4-rt/arch/x86/lib/delay.c:174
#5 0xffffffff819f8086 in panic (fmt=<optimized out>) at
/home/wagi/rt/v4.4-rt/kernel/panic.c:253
#6 0xffffffff81007b7d in oops_end (flags=70, regs=0xffff88003fc03d18,
signr=9)
at /home/wagi/rt/v4.4-rt/arch/x86/kernel/dumpstack.c:247
#7 0xffffffff8105140f in no_context (regs=0xffff88003fc03d18,
error_code=0, address=18446744054555604424,
signal=<optimized out>, si_code=<optimized out>) at
/home/wagi/rt/v4.4-rt/arch/x86/mm/fault.c:750
#8 0xffffffff810516f6 in __bad_area_nosemaphore
(regs=0xffff88003fc03d18, error_code=0, address=18446744054555604424,
si_code=196609) at /home/wagi/rt/v4.4-rt/arch/x86/mm/fault.c:830
#9 0xffffffff810517f3 in bad_area_nosemaphore (regs=<optimized out>,
error_code=<optimized out>, address=<optimized out>)
at /home/wagi/rt/v4.4-rt/arch/x86/mm/fault.c:837
#10 0xffffffff81051a5d in __do_page_fault (regs=0xffffffff81dfe77d,
error_code=18446744071593360363, address=44)
at /home/wagi/rt/v4.4-rt/arch/x86/mm/fault.c:1202
#11 0xffffffff81051f1b in trace_do_page_fault (regs=0xffff88003fc03d18,
error_code=0)
at /home/wagi/rt/v4.4-rt/arch/x86/mm/fault.c:1353
#12 0xffffffff8104c44c in do_async_page_fault (regs=0xffff88003fc03d18,
error_code=0)
at /home/wagi/rt/v4.4-rt/arch/x86/kernel/kvm.c:267
#13 0xffffffff81a05f98 in async_page_fault () at
/home/wagi/rt/v4.4-rt/arch/x86/entry/entry_64.S:1057
#14 0x0000000000000006 in irq_stack_union ()
#15 0xffff880033c28000 in ?? ()
#16 0xffff880033c28000 in ?? ()
#17 0x000000000038933e in ?? ()
#18 0xffff88003fc03dd8 in ?? ()
#19 0x000000008108512d in ?? ()
#20 0x2d2d2d2d2d2d2d2d in ?? ()
#21 0x000000006144ba17 in ?? ()
#22 0x0000000000000024 in irq_stack_union ()
#23 0x000000018f93f7e6 in ?? ()
#24 0x000000000000f6a8 in ?? ()
#25 0xffffffff8108512d in migrate_disable () at
/home/wagi/rt/v4.4-rt/kernel/sched/core.c:3209
#26 0xffffffff8109c42f in update_curr_rt (rq=0x38933e) at
/home/wagi/rt/v4.4-rt/kernel/sched/rt.c:952
#27 0xffffffff8109c5d7 in task_tick_rt (rq=0xffff88003fc15000,
p=0xffff880033c28000, queued=<optimized out>)
at /home/wagi/rt/v4.4-rt/kernel/sched/rt.c:2223
#28 0xffffffff8108d013 in scheduler_tick () at
/home/wagi/rt/v4.4-rt/kernel/sched/core.c:3048
#29 0xffffffff810c1c77 in update_process_times (user_tick=0) at
/home/wagi/rt/v4.4-rt/kernel/time/timer.c:1492
#30 0xffffffff810d1e1d in tick_sched_handle (ts=<optimized out>,
regs=<optimized out>)
at /home/wagi/rt/v4.4-rt/kernel/time/tick-sched.c:156
#31 tick_sched_timer (timer=0xffff88003fc10c00) at
/home/wagi/rt/v4.4-rt/kernel/time/tick-sched.c:1089
#32 0xffffffff810c2a62 in __run_hrtimer (now=<optimized out>,
timer=<optimized out>, base=<optimized out>,
cpu_base=<optimized out>) at
/home/wagi/rt/v4.4-rt/kernel/time/hrtimer.c:1343
#33 __hrtimer_run_queues (cpu_base=0xffffffff81dfe77d, now=...) at
/home/wagi/rt/v4.4-rt/kernel/time/hrtimer.c:1519
#34 0xffffffff810c3653 in hrtimer_interrupt (dev=0xffff88003fc0ee00) at
/home/wagi/rt/v4.4-rt/kernel/time/hrtimer.c:1557
#35 0xffffffff8103faec in local_apic_timer_interrupt () at
/home/wagi/rt/v4.4-rt/arch/x86/kernel/apic/apic.c:943
#36 0xffffffff81a06a93 in smp_apic_timer_interrupt (regs=<optimized out>)
at /home/wagi/rt/v4.4-rt/arch/x86/kernel/apic/apic.c:967
#37 0xffffffff81a04b9e in apic_timer_interrupt () at
/home/wagi/rt/v4.4-rt/arch/x86/entry/entry_64.S:756
In migrate_disable() we clearly hit this spot here:
if (unlikely(p->migrate_disable_atomic)) {
tracing_off();
WARN_ON_ONCE(1);
}
and then things go really south.
Daniel