[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] found one tcg `bug' (was: testing r4764 svn from 2008-0
From: |
Thiemo Seufer |
Subject: |
Re: [Qemu-devel] found one tcg `bug' (was: testing r4764 svn from 2008-06-20 18:25:56 +0200 on FreeBSD) |
Date: |
Wed, 2 Jul 2008 21:49:48 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Juergen Lock wrote:
[snip]
> > (Memory corruption, right?) I've put the end of a in_asm,out_asm log up at
> > http://people.freebsd.org/~nox/qemu/tcgbug-i386host.log.txt
> > (its long.) That function is MD5Transform() in:
> > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/md5c.c?annotate=1.27
> > in the FreeBSD 7.0 amd64 kernel on
> >
> > ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/7.0/7.0-RELEASE-amd64-livefs.iso
> > (the bootonly most likely will fail in the same way:
> >
> > ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/7.0/7.0-RELEASE-amd64-bootonly.iso
> > , you can go to
> > http://mirrorlist.freebsd.org/
> > to find a mirror near you, search for ISOs.)
>
> Well, I finally got around looking at this again, and found the cause
> wasn't exactly a bug, just a too low constant:
>
> Index: qemu/exec-all.h
> @@ -30,7 +30,7 @@
> struct TranslationBlock;
>
> /* XXX: make safe guess about sizes */
> -#define MAX_OP_PER_INSTR 64
> +#define MAX_OP_PER_INSTR 128
> /* A Call op needs up to 6 + 2N parameters (N = number of arguments). */
> #define MAX_OPC_PARAM 10
> #define OPC_BUF_SIZE 512
>
> With this I can at least boot into fixit and run find /dist (I didn't
> test an actual install.)
Were you able to isolate the offending instruction? With more than 64
ops it should probably use a helper function.
Thiemo