Re: Should changes in src/usr.sbin/bhyve/ trigger an llvm rebuild?
- In reply to: David Wolfskill : "Re: Should changes in src/usr.sbin/bhyve/ trigger an llvm rebuild?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 29 Jan 2024 04:55:43 UTC
[I cut out the history to start clean.]
So 63a7e799b32c was already built and installed as of here, from what
I can tell. This example does not show the 1c090bf880bf -> 63a7e799b32c
transition, only after 63a7e799b32c is already built and installed.
So, up to this point:
buildworld 63a7e799b32c
installworld 63a7e799b32c
NOTE: As of here various tools and such no loner have the
timestamps they had from 1c090bf880bf.
reboot into 63a7e799b32c
~/Downloads/build_typescript.txt:10: 63a7e799b32c..2ee407b6068a stable/14 -> origin/stable/14
So all the following build activity is building of
2ee407b6068a, not 63a7e799b32c directly, but the
timestamp relationships changed as mentioned above
cause various things to rebuild, despite lack of
source code updates being involved.
~/Downloads/build_typescript.txt:45: 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
I'll note that without a reboot the notation will stay
"stable/14-n266551-63a7e799b32c", even after 2ee407b6068a
is installed: it reports the operating kernel's hash, not
the installed kernel's hash.
~/Downloads/build_typescript.txt:51: >>> World build started on Sun Jan 28 11:30:47 UTC 2024
~/Downloads/build_typescript.txt:19709: >>> World built in 2351 seconds, ncpu: 8, make -j16
So, up to this point (extending the prior list):
buildworld 63a7e799b32c
installworld 63a7e799b32c
NOTE: As of here various tools and such no loner have the
timestamps they had from 1c090bf880bf.
reboot into 63a7e799b32c
Update source to 2ee407b6068a
buildworld 2ee407b6068a
NOTE: As of here more than just the changes for
2ee407b6068a have rebuilt. But it need not
be everything that built originally for
63a7e799b32c. The details will matter
later for the consequences.
I claim that without the "Update source to"
this would still have taken around 2000 sec
because of the installworld of the 63a7e799b32c
materials: the things are reinstalled that
caused the original (not shown) llvm rebuild
and such that took the original (not shown)
time.
Installworld of 2ee407b6068a will be very
different for what is not changed at all
(and so does not get new timestamps from
the install). But at this point a subset
of 63a7e799b32c also got rebuilds and, so,
new timestamps for the next installworld
to put in place.
I'll note that, while 2351 sec is a lot of
activity, the number of files that will be
installed is not likely to be in direct
proportion to the build time. For example,
large files from llvm.
I'll note that without the -dM option, the make
is not explicit about the timestamp relationships
that it used to pick what to rebuild. No specific
evidence for that is present.
~/Downloads/build_typescript.txt:39267: >>> Kernel(s) CANARY built in 898 seconds, ncpu: 8, make -j16
~/Downloads/build_typescript.txt:39274: >>> Installing kernel CANARY on Sun Jan 28 12:24:57 UTC 2024
~/Downloads/build_typescript.txt:42089: >>> Installing kernel CANARY completed on Sun Jan 28 12:25:27 UTC 2024
installkernel does not change notable timestamp relationships of
tools and such vs. other files.
~/Downloads/build_typescript.txt:42988: >>> Installing everything started on Sun Jan 28 12:25:57 UTC 2024
~/Downloads/build_typescript.txt:81798: >>> Installing everything completed on Sun Jan 28 12:28:01 UTC 2024
This is going to get new timestamps based on 2ee407b6068a
changes and based on the partial rebuild of 63a7e799b32c,
so more than just what 2ee407b6068a would update on its own.
But it is not obvious how many of the partial rebuild of
63a7e799b32c material would touch something that leads to
future rebuilds: likely far less but possibly not zero.
~/Downloads/build_typescript.txt:82482: To remove old libraries run 'make delete-old-libs'.
~/Downloads/build_typescript.txt:82483: >> make delete-old OK
~/Downloads/build_typescript.txt:82537: 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-r8.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64 1400506 1400506
No reboot, so it did not report 2ee407b6068a, despite it
being built and installed (along with rebuilding and
reinstalling some 63a7e799b32c material).
~/Downloads/build_typescript.txt:82543: >>> World build started on Sun Jan 28 12:30:11 UTC 2024
~/Downloads/build_typescript.txt:100102: >>> World built in 116 seconds, ncpu: 8, make -j16
The timestamps from the partial 63a7e799b32c rebuild and
the 2ee407b6068a build activity are involved in determining
what gets rebuilt above. 2ee407b6068a does not contribute
much here. It is unclear how much the partial rebuild of
63a7e799b32c contributes to timestamps that would cause
more rebuilds. The 116 sec indicates: not much gets new
timestamps this time.
~/Downloads/build_typescript.txt:119629: >>> Kernel(s) CANARY built in 920 seconds, ncpu: 8, make -j16
~/Downloads/build_typescript.txt:119636: >>> Installing kernel CANARY on Sun Jan 28 12:47:27 UTC 2024
~/Downloads/build_typescript.txt:122450: >>> Installing kernel CANARY completed on Sun Jan 28 12:47:55 UTC 2024
installkernel does not change notable timestamp relationships of
tools and such vs. other files.
~/Downloads/build_typescript.txt:123346: >>> Installing everything started on Sun Jan 28 12:48:25 UTC 2024
~/Downloads/build_typescript.txt:162156: >>> Installing everything completed on Sun Jan 28 12:50:01 UTC 2024
This install's both the partial-63a7e799b32c-rebuild material
and the 2ee407b6068a material. The 116 sec figure suggests that
there is not man files with updated timestamps.
A reboot is involved here (or just below), so 2ee407b6068a will show up.
~/Downloads/build_typescript.txt:162840: To remove old libraries run 'make delete-old-libs'.
~/Downloads/build_typescript.txt:162841: >> make delete-old OK
~/Downloads/build_typescript.txt:162895: 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
The 2ee407b6068a kernel now shows as being in operation.
~/Downloads/build_typescript.txt:162897: >>> Removing old libraries
~/Downloads/build_typescript.txt:162932: 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
Still 2ee407b6068a.
~/Downloads/build_typescript.txt:162938: >>> World build started on Sun Jan 28 23:17:05 UTC 2024
~/Downloads/build_typescript.txt:180497: >>> World built in 124 seconds, ncpu: 8, make -j16
It is possible here that little or no 63a7e799b32c related
timestamp changes that lead to rebuild activity were involved
in the above buildworld . It depends on the details of what
was rebuilt. the 116 sec and 124 sec figures both suggest:
no much overall.
~/Downloads/build_typescript.txt:200023: >>> Kernel(s) CANARY built in 901 seconds, ncpu: 8, make -j16
~/Downloads/build_typescript.txt:200030: >>> Installing kernel CANARY on Sun Jan 28 23:34:11 UTC 2024
~/Downloads/build_typescript.txt:202844: >>> Installing kernel CANARY completed on Sun Jan 28 23:34:39 UTC 2024
installkernel does not change notable timestamp relationships of
tools and such vs. other files.
~/Downloads/build_typescript.txt:203743: >>> Installing everything started on Sun Jan 28 23:35:09 UTC 2024
~/Downloads/build_typescript.txt:242553: >>> Installing everything completed on Sun Jan 28 23:37:16 UTC 2024
2ee407b6068a will still show up after the the reboot.
~/Downloads/build_typescript.txt:243237: To remove old libraries run 'make delete-old-libs'.
~/Downloads/build_typescript.txt:243238: >> make delete-old OK
~/Downloads/build_typescript.txt:243292: 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
Yep, still 2ee407b6068a.
~/Downloads/build_typescript.txt:243294: >>> Removing old libraries
Overall this sequence fits what I expect. The above wording is
more detailed than my earlier quick summaries.
===
Mark Millard
marklmi at yahoo.com