Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2019 09:15:45 -0800
From:      Conrad Meyer <cem@freebsd.org>
To:        Oleg Ginzburg <olevole@olevole.ru>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>,  "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org>, Jung-uk Kim <jkim@freebsd.org>
Subject:   Re: r344398 Import ACPICA 20190215: breaks bhyve
Message-ID:  <CAG6CVpUrUK6fHuVH%2BBATgBNiJvMixfKJPanvZVB5SSDwRhVfzg@mail.gmail.com>
In-Reply-To: <CAMsb%2BmaoBZN5xsDnZp-HisQTgqr339ePjvqkCw2R-GTqQEnWUw@mail.gmail.com>
References:  <CAMsb%2BmaoBZN5xsDnZp-HisQTgqr339ePjvqkCw2R-GTqQEnWUw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Oops, to the list this time.

Hi Oleg,

Those look like the ACPI lines bhyve attempts to generate and compile
in basl_fwrite_madt():

272         /* Legacy IRQ0 is connected to pin 2 of the IOAPIC */
273         EFPRINTF(fp, "[0001]\t\tSubtable Type : 02\n");
274         EFPRINTF(fp, "[0001]\t\tLength : 0A\n");
275         EFPRINTF(fp, "[0001]\t\tBus : 00\n");
276         EFPRINTF(fp, "[0001]\t\tSource : 00\n");
277         EFPRINTF(fp, "[0004]\t\tInterrupt : 00000002\n");
278         EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0005\n");
^^^ this line ("maximum 1 bit")
279         EFPRINTF(fp, "\t\t\tPolarity : 1\n");
280         EFPRINTF(fp, "\t\t\tTrigger Mode : 1\n");
281         EFPRINTF(fp, "\n");
282
283         EFPRINTF(fp, "[0001]\t\tSubtable Type : 02\n");
284         EFPRINTF(fp, "[0001]\t\tLength : 0A\n");
285         EFPRINTF(fp, "[0001]\t\tBus : 00\n");
286         EFPRINTF(fp, "[0001]\t\tSource : %02X\n", SCI_INT);
287         EFPRINTF(fp, "[0004]\t\tInterrupt : %08X\n", SCI_INT);
^^^ this line ("maximum 2 bit"; SCI_INT=3D=3D9)
288         EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0000\n");
289         EFPRINTF(fp, "\t\t\tPolarity : 3\n");
290         EFPRINTF(fp, "\t\t\tTrigger Mode : 3\n");
291         EFPRINTF(fp, "\n");

Would you mind filing a PR to track this investigation?

The error message and constraint on Value being in range of BitLength
was added to DtCompileFlag() in compiler/dtfield.c way back in r208625
(ACPICA 20100528) =E2=80=94 it's not new.  What must be new is the idea tha=
t
these fields have a smaller bit width that the numbers bhyve has
chosen, or bhyve's choice of numbers.

We can eliminate bhyve as a suspect, maybe?  acpi.c hasn't changed
substantially for years.  In fact, there is a seemingly related commit
r272838 which converted some fields to hexadecimal in order to comply
with length limitations.  The first of these two tables was introduced
in r257933 by tycho@ / neel@.  The second was changed from a bare
constant by jhb@ in r259998, but previously held the value 9.  It
dates to the original 2012 "ACPI support for bhyve" commit by grehan@
in r243327.

So yeah, probably something changed recently in ACPICA.

Best,
Conrad

On Thu, Feb 21, 2019 at 8:38 AM Oleg Ginzburg <olevole@olevole.ru> wrote:
>
> Hi,
>
> most likely r344398[1] commit breaks bhyve with the following errors:
>
> Subtable Type : 02
> Error    6302 -           Flag value is too large ^  (Maximum 1 bit)
> 58: [0002]         Flags (decoded below) : 0005
> Error    6302 -                   Flag value is too large ^  (Maximum 2 b=
it)
> 66: [0004]              Interrupt : 00000009
> Error    6302 -       Flag value is too large ^  (Maximum 2 bit)
> Assertion failed: (error =3D=3D 0), function main, file
> /usr/src/usr.sbin/bhyve/bhyverun.c, line 1190.
>
> Can anyone else confirm this?
>
> Howto reproduce:
>
> fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.3/FreeBSD-=
10.3-RELEASE-amd64-bootonly.iso
>
> sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -i -I
> FreeBSD-10.3-RELEASE-amd64-bootonly.iso guestname
>
>
> __
> [1] - https://svnweb.freebsd.org/base?view=3Drevision&revision=3Dr344398
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org=
"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpUrUK6fHuVH%2BBATgBNiJvMixfKJPanvZVB5SSDwRhVfzg>