Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2015 22:33:15 +0300
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        current@FreeBSD.org
Subject:   Re: panic in softdep_slowdown()
Message-ID:  <20150128193315.GC15484@glebius.int.ru>
In-Reply-To: <20150128190441.GO42409@kib.kiev.ua>
References:  <20150127203103.GZ15484@glebius.int.ru> <20150128104842.GL42409@kib.kiev.ua> <20150128182230.GB15484@glebius.int.ru> <20150128190441.GO42409@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150128193315.GC15484>