On Wed, Jan 28, 2015 at 09:04:42PM +0200, Konstantin Belousov wrote: K> > I can't see where integer divide fault can happen with stat_flush_threads=1 :( K> K> Look at the exact asm instruction which faulted, also look at the registers K> content. K> K> It might be hypervisor bug, after all. Yes, for me it looks like it. %edx should be one as well as -0x44(%rbp). 0xffffffff80895d43 <softdep_slowdown+435>: mov -0x20(%rbp),%ecx 0xffffffff80895d46 <softdep_slowdown+438>: mov %ecx,%edx 0xffffffff80895d48 <softdep_slowdown+440>: shr $0x1f,%edx 0xffffffff80895d4b <softdep_slowdown+443>: add %edx,%ecx 0xffffffff80895d4d <softdep_slowdown+445>: sar %ecx 0xffffffff80895d4f <softdep_slowdown+447>: mov 0xffffffff80ee24c8,%edx 0xffffffff80895d56 <softdep_slowdown+454>: mov %rax,-0x40(%rbp) 0xffffffff80895d5a <softdep_slowdown+458>: mov %ecx,%eax 0xffffffff80895d5c <softdep_slowdown+460>: mov %edx,-0x44(%rbp) 0xffffffff80895d5f <softdep_slowdown+463>: cltd 0xffffffff80895d60 <softdep_slowdown+464>: mov -0x44(%rbp),%ecx 0xffffffff80895d63 <softdep_slowdown+467>: idiv %ecx (kgdb) p &stat_flush_threads $5 = (int *) 0xffffffff80ee24c8 (kgdb) info registers rax 0x12b86 76678 rbx 0x4 4 rcx 0x0 0 rdx 0x0 0 rsi 0x3e8 1000 rdi 0x99 153 rbp 0xfffffe001eb5f2b0 0xfffffe001eb5f2b0 ... (kgdb) p *(int *)($rbp - 0x44) $4 = 0 (kgdb) p *(int *)($rbp - 0x40) $8 = 0 (kgdb) p &max_softdeps_hard $11 = (int *) 0xfffffe001eb5f290 (kgdb) p (int *)($rbp - 0x20) $12 = (int *) 0xfffffe001eb5f290 (kgdb) p max_softdeps_hard $10 = 153357 -- Totus tuus, Glebius.Received on Wed Jan 28 2015 - 18:33:20 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:55 UTC