On 05 Jul 2014, at 08:09, Arrigo Marchiori <ardovm at yahoo.it> wrote:> > On Fri, Jul 04, 2014 at 03:37:27PM +0800, wsk wrote: >> lists >> I met a BTX halted problem while upgrade Freebsd 9.0-RC3 to >> 10.0-Release via freebsd-update. >> and please check the link below: >> http://sw.gddsn.org.cn/jopens/test/btx.jpg >> >> BTW: I can booted 10.0-R from DVD-ROM as expected but got same error >> message with flash-driver. > > I don't remember if that error message means ``division by zero''.It certainly looks a lot like it. The code at cs:eip from the OP's screenshot disassembles to: 36217: f7 35 bc d6 03 00 divl 0x3d6bc 3621d: 85 ff test %edi,%edi 3621f: 74 05 je 0x36226 36221: 89 1f mov %ebx,(%edi) 36223: 89 4f 04 mov %ecx,0x4(%edi) 36226: 89 c2 mov %eax,%edx 36228: e9 c2 00 00 00 jmp 0x362ef 3622d: 66 c7 45 ea 00 00 movw $0x0,-0x16(%ebp) 36233: 89 c8 mov %ecx,%eax This is a piece of code from /usr/src/lib/libstand/qdivrem.c, which is used to do 64-bit divides. It would be nice if you could try out this loader binary, which has a few additional checks for zero sector counts or sizes: http://www.andric.com/freebsd/loader.edd SHA256 (loader.edd) = 89f99500adb3a8feaa84336ce625975bcfdc0f886514ab02de4992859a671aa9 However, this might still mis-detect your disk sizes, obviously.> Just in case, you could try the patch attached to this bug: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176748 > > The patch was compiled for 9-STABLE; if it does not apply to the 10.0 > sources, then drop me a line so I can adapt it.I tried this patch on a few FreeBSD VMs, and each of them stopped being able to mount the root filesystem because of it. I don't really know what the explanation is... -Dimitry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 203 bytes Desc: Message signed with OpenPGP using GPGMail URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20140705/23aef79a/attachment.sig>
Hello Dmitry, On Sat, Jul 05, 2014 at 02:57:45PM +0200, Dimitry Andric wrote:> On 05 Jul 2014, at 08:09, Arrigo Marchiori <ardovm at yahoo.it> wrote:[...]> > Just in case, you could try the patch attached to this bug: > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176748 > > > > The patch was compiled for 9-STABLE; if it does not apply to the 10.0 > > sources, then drop me a line so I can adapt it. > > I tried this patch on a few FreeBSD VMs, and each of them stopped being > able to mount the root filesystem because of it. I don't really know > what the explanation is...If I was sure my patch was 100% right, I'd say that your VMs have a buggy BIOS, and the installations you performed (maybe the rest of the BTX code) rely on such bugs. But I am not, of course! :-) Sorry, I have no idea too. I opened that PR because it looked like the right solution to a problem I encountered. It was on a Geode system when booting from a USB pendrive; all the information is reported on the PR. Thank you very much for trying the patch anyway! Yours is the first feedback after more than one year. I'll keep following this thread on stable@, in case I can help. Regards, -- rigo http://rigo.altervista.org
? 2014/07/05 20:57, Dimitry Andric ??: hi, Andric it still got BTX halted with your patched loader. and here is the new BTX picture http://sw.gddsn.org.cn/jopens/test/btx_edd.jpg TIA> On 05 Jul 2014, at 08:09, Arrigo Marchiori <ardovm at yahoo.it> wrote: >> On Fri, Jul 04, 2014 at 03:37:27PM +0800, wsk wrote: >>> lists >>> I met a BTX halted problem while upgrade Freebsd 9.0-RC3 to >>> 10.0-Release via freebsd-update. >>> and please check the link below: >>> http://sw.gddsn.org.cn/jopens/test/btx.jpg >>> >>> BTW: I can booted 10.0-R from DVD-ROM as expected but got same error >>> message with flash-driver. >> I don't remember if that error message means ``division by zero''. > It certainly looks a lot like it. The code at cs:eip from the OP's > screenshot disassembles to: > > 36217: f7 35 bc d6 03 00 divl 0x3d6bc > 3621d: 85 ff test %edi,%edi > 3621f: 74 05 je 0x36226 > 36221: 89 1f mov %ebx,(%edi) > 36223: 89 4f 04 mov %ecx,0x4(%edi) > 36226: 89 c2 mov %eax,%edx > 36228: e9 c2 00 00 00 jmp 0x362ef > 3622d: 66 c7 45 ea 00 00 movw $0x0,-0x16(%ebp) > 36233: 89 c8 mov %ecx,%eax > > This is a piece of code from /usr/src/lib/libstand/qdivrem.c, which is > used to do 64-bit divides. > > It would be nice if you could try out this loader binary, which has a > few additional checks for zero sector counts or sizes: > > http://www.andric.com/freebsd/loader.edd > SHA256 (loader.edd) = 89f99500adb3a8feaa84336ce625975bcfdc0f886514ab02de4992859a671aa9 > > However, this might still mis-detect your disk sizes, obviously. > > >> Just in case, you could try the patch attached to this bug: >> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176748 >> >> The patch was compiled for 9-STABLE; if it does not apply to the 10.0 >> sources, then drop me a line so I can adapt it. > I tried this patch on a few FreeBSD VMs, and each of them stopped being > able to mount the root filesystem because of it. I don't really know > what the explanation is... > > -Dimitry >--
On Saturday, July 05, 2014 8:57:45 am Dimitry Andric wrote:> > Just in case, you could try the patch attached to this bug: > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176748 > > > > The patch was compiled for 9-STABLE; if it does not apply to the 10.0 > > sources, then drop me a line so I can adapt it. > > I tried this patch on a few FreeBSD VMs, and each of them stopped being > able to mount the root filesystem because of it. I don't really know > what the explanation is...That patch is just wrong. I've updated the PR with something that is probably similar to your patch (explicitly ignore a size of zero back from EDD). -- John Baldwin