Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Sep 2019 12:21:17 +0100
From:      Warner Losh <imp@bsdimp.com>
To:        Toomas Soome <tsoome@me.com>
Cc:        KIRIYAMA Kazuhiko <kiri@truefc.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: r352368 can't boot
Message-ID:  <CANCZdfqLCi68=P9wpqx2MU_E7PdikytSqOFn2vq4DjLGC1B1YA@mail.gmail.com>
In-Reply-To: <8A9627B9-8190-490C-8D76-6F2A9D00E059@me.com>
References:  <201909170530.x8H5UGxo012419@kx.truefc.org> <5E929415-319A-490D-AB9A-2F8259391B13@me.com> <CANCZdfr2P=OBKZeVd4mMpup%2BTvVbr28feHSt7dCmFp6bMRi82A@mail.gmail.com> <8A9627B9-8190-490C-8D76-6F2A9D00E059@me.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 17, 2019, 11:24 AM Toomas Soome <tsoome@me.com> wrote:

>
>
> On 17 Sep 2019, at 13:09, Warner Losh <imp@bsdimp.com> wrote:
>
>
>
> On Tue, Sep 17, 2019, 6:47 AM Toomas Soome <tsoome@me.com> wrote:
>
>>
>>
>> > On 17 Sep 2019, at 08:30, KIRIYAMA Kazuhiko <kiri@truefc.org> wrote:
>> >
>> > Hi,all
>> >
>> > Yesterday I've updated latest head (r352368) and rebuild
>> > 13.0-CURRENT. All went fine, but when I boot, it's stopped
>> > at boot stage. Then I typed `boot', booted normally and put
>> > login prompt and login go ahead. But `shutdown -r now',
>> > stopped at loader prompt same as login case. What happened?
>> > All I've done is whithin bhyve VM.
>> >
>> >
>>
>>
>> > Consoles: userboot
>> >
>> > FreeBSD/amd64 User boot, Revision 1.1
>> > (Mon Jun 18 16:11:55 UTC 2018 root@releng3.nyi.freebsd.org)
>> > Loading /boot/defaults/loader.conf
>> > xemit not found
>> > Error while including /boot/frames.4th, in the line:
>> >                h_el @ xemit
>> >
>> > can't load 'kernel'
>> >
>> > Type '?' for a list of commands, 'help' for more detailed help.
>> > OK
>> >
>>
>> This is unfortunate case where the guest image has more recent boot
>> scripts than hosts /boot/userboot.so has. I did push the fix for that issue
>> to stable/11 and stable/12. The patch does introduce xemit word.
>>
>> Such situation is unfortunate, but accident waiting to happen with this
>> method where we are attempting to use bootloader (userboot.so) from older
>> system to load  guest vm.
>>
>
> Can we provide a fallback to xemit builtin for old systems without it? I
> believe we did this for other things as a transition. Forth has a way to do
> this, though we need to make sure we properly constrain what we pass to
> emit...
>
> Warner
>
> P.s. I'm at legoland this week, so I can't look at it for a bit.
>
>
> Well, the only way to avoid such issue is to make sure the guest
> environment is providing all the needed bits, but since we do have
> interpreter inside the userboot.so and userboot.so is in host, this does
> set rather unfortunate limits what we can do.
>

Yes. I understand that we are limited in our scripts to somehow testing if
xemit is a forth word and if not providing a fallback implementation of it
in forth using emit.

Warner

rgds,
> toomas
>



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