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

From: David Wolfskill <david_at_catwhisker.org>
Date: Mon, 29 Jan 2024 00:05:03 UTC
On Sun, Jan 28, 2024 at 03:00:59PM -0800, Mark Millard wrote:
> ...
> To be clear, referencing details of your context:
> 
> When you had the stable/14 machines at 1c090bf880bf:
> 
> A) You built (META_MODE):         63a7e799b32c
> B) You installed:                 63a7e799b32c
> C) You rebooted into:             63a7e799b32c
> 
> I'm claiming that next doing:
> 
> D) build again (still META_MODE): 63a7e799b32c
> 
> would have rebuilt llvm at that point, the
> time-relationship cause(s) being set up
> during (B).

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.

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
>>> 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
>>> 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
>>> 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.

> ....

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.