Re: Should changes in src/usr.sbin/bhyve/ trigger an llvm rebuild?

From: David Wolfskill <david_at_catwhisker.org>
Date: Mon, 29 Jan 2024 01:33:49 UTC
On Sun, Jan 28, 2024 at 05:13:24PM -0800, Mark Millard wrote:
> ...
> > As it happens, I rather fumble-fingered the (intended) reboot on the 2nd
> > laptop (and started another rebuild instead).
> > 
> > And I do these within script(1), as it's handy to have a record.
> > 
> > Note that this differes from the sequence you cite above, in that I
> > failed to do the reboot.
> > 
> > So I powered it back up and -- without updating sources (or the local
> > repo mirror, for that matter) -- did another rebuild.
> > 
> 
> I'm having trouble identifying the detailed sequencing
> being reported below.
> 
> Doing on one machine:
> installworld
> buidlworld
> buildworld
> buildworld
>  . .
> 
> Will only take large times for the first one
> (potentially).

I have not done that.

> But doing:
> installworld
> buidlworld
> installworld
> buildworld
> installworld
> buildworld
>  . .
> 
> Can have each buildworld take large times
> depending the the details involved.

As documented at https://www.catwhisker.org/~david/FreeBSD/upgrade.html,
each "build" is (essentially) the set of steps in src/UPDATING under "To
rebuild everything and install it on the current system." starting with
"make buildworld" up to (and including) "make delete-old" (without the
"<reboot in single user>" step).

> I need to understand more about what happened
> before each buildworld on each machine to know
> what sort of timestamp relationships are
> involved for files. installworld can
> significantly change various timestamp
> relationships.

I have placed a copy of the complete typescript at
https://www.catwhisker.org/~david/FreeBSD/stable_14/build_typescript.txt.

> > Here is an extract of some salient lines from the typescript file:
> > 
> > g1-48(14.0-S)[4] egrep ' built in |Installing .* (started|completed)|Removing old libraries| stable/14-n' s1
> > FreeBSD g1-48.catwhisker.org 14.0-STABLE FreeBSD 14.0-STABLE #38 stable/14-n266551-63a7e799b32c: Sat Jan 27 11:40:05 UTC 2024     root@g1-48.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
> >>>> World built in 2351 seconds, ncpu: 8, make -j16
> 
> Was a prior step (ignoring reboots, say) an
> installworld of 63a7e799b32c, with no other
> buidlworlds after the installworld?

Yes; that's how stable/14-n266551-63a7e799b32c came to be the running
system.

Oh: perhaps of interest: I'm not using boot environments.  All of this
is with UFS (well, UFS2+soft updates).

> (I'm wording for major steps or my description
> the possibilities would get rather complicated
> and large.)
> 
> >>>> Kernel(s)  CANARY built in 898 seconds, ncpu: 8, make -j16
> >>>> Installing kernel CANARY completed on Sun Jan 28 12:25:27 UTC 2024
> >>>> Installing everything started on Sun Jan 28 12:25:57 UTC 2024
> >>>> Installing everything completed on Sun Jan 28 12:28:01 UTC 2024
> > FreeBSD g1-48.catwhisker.org 14.0-STABLE FreeBSD 14.0-STABLE #38 stable/14-n266551-63a7e799b32c: Sat Jan 27 11:40:05 UTC 2024     root@g1-48.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
> >>>> World built in 116 seconds, ncpu: 8, make -j16
> 
> Was a prior step (ignoring reboots, say) an
> installworld of 63a7e799b32c, with no other
> buidlworlds after the installworld?
> 
> Is the answer different here?

No reboots -- as mentioned, I intended to reboot, but instead initiated
the build sequence.

> >>>> Kernel(s)  CANARY built in 920 seconds, ncpu: 8, make -j16
> >>>> Installing kernel CANARY completed on Sun Jan 28 12:47:55 UTC 2024
> >>>> Installing everything started on Sun Jan 28 12:48:25 UTC 2024
> >>>> Installing everything completed on Sun Jan 28 12:50:01 UTC 2024
> > FreeBSD g1-48.catwhisker.org 14.0-STABLE FreeBSD 14.0-STABLE #40 stable/14-n266554-2ee407b6068a: Sun Jan 28 12:39:17 UTC 2024     root@g1-48.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
> >>>> Removing old libraries
> > FreeBSD g1-48.catwhisker.org 14.0-STABLE FreeBSD 14.0-STABLE #40 stable/14-n266554-2ee407b6068a: Sun Jan 28 12:39:17 UTC 2024     root@g1-48.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
> >>>> World built in 124 seconds, ncpu: 8, make -j16
> 
> Was a prior step (ignoring reboots, say) an
> installworld of 63a7e799b32c with no other
> buidlworlds after the, installworld?

Where you see ">>>> Removing old libraries", there was a reboot just
before that.  And only then.

> >>>> Kernel(s)  CANARY built in 901 seconds, ncpu: 8, make -j16
> >>>> Installing kernel CANARY completed on Sun Jan 28 23:34:39 UTC 2024
> >>>> Installing everything started on Sun Jan 28 23:35:09 UTC 2024
> >>>> Installing everything completed on Sun Jan 28 23:37:16 UTC 2024
> > FreeBSD g1-48.catwhisker.org 14.0-STABLE FreeBSD 14.0-STABLE #41 stable/14-n266554-2ee407b6068a: Sun Jan 28 23:26:10 UTC 2024     root@g1-48.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
> >>>> Removing old libraries
> > g1-48(14.0-S)[5]
> > 
> > (The ">>> Removing old libraries" is an artifact from "make
> > delete-old-libs", which I do on the first reboot after a build.)
> > 
> > If we just look at the "make buildworld" times, we see:
> > 
> >>>> World built in 2351 seconds, ncpu: 8, make -j16
> >>>> World built in 116 seconds, ncpu: 8, make -j16
> >>>> World built in 124 seconds, ncpu: 8, make -j16
> > 
> > I suggest that -- within *this* "experiment's" error -- 116 sec is not
> > significantly different from 124 sec, but that 2351 sec is significantly
> > different from either.
> > 
> > ....
> 
> 
> 
> ===
> Mark Millard
> marklmi at yahoo.com
> ....

Peace,
david
-- 
David H. Wolfskill                              david@catwhisker.org
Do these ends really justify those means?

See https://www.catwhisker.org/~david/publickey.gpg for my public key.