Date: Sun, 28 Jan 2024 20:55:43 -0800 From: Mark Millard <marklmi@yahoo.com> To: david@catwhisker.org, FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org> Subject: Re: Should changes in src/usr.sbin/bhyve/ trigger an llvm rebuild? Message-ID: <BE3945B0-CDA1-4BEC-8BA5-2D66DCAA3C6B@yahoo.com> In-Reply-To: <ZbcAfTSR7zfsOaDj@albert.catwhisker.org> References: <EAD76C2C-065E-4EFA-901F-1C0FD13FFC65.ref@yahoo.com> <EAD76C2C-065E-4EFA-901F-1C0FD13FFC65@yahoo.com> <ZbZ2u9FlUhvb1orU@albert.catwhisker.org> <5BCB8F1A-B5D5-4506-87E1-8B26E713C6F5@yahoo.com> <ZbbPyYNtF6prkdtd@albert.catwhisker.org> <B1231700-D7A1-4190-AA2A-495CEA954535@yahoo.com> <8A79DE24-403E-4E73-82B6-0E5CF4F27604@yahoo.com> <Zbbrr6fh3sQ_VX-8@albert.catwhisker.org> <A20E1EB3-1D51-44FF-840F-69DB41C5CEA7@yahoo.com> <ZbcAfTSR7zfsOaDj@albert.catwhisker.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[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. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BE3945B0-CDA1-4BEC-8BA5-2D66DCAA3C6B>