Re: Meeting proposal for KernelCI Bisection
Mark Brown <[email protected]> Thu, 12 Mar 2026 00:23:57 +0000
| Newsgroups | dev.linux.lists.kernelci |
|---|---|
| Message-ID | <[email protected]> |
--sRUg/N4PsNSAFS4u Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Mar 11, 2026 at 10:01:08PM +0100, Guillaume Tucker wrote: > Stage 1: the basics > ------------------- > The first step is to implement the same kind of bisection as was > initially done in Jenkins but this time with Maestro: > * only for LAVA test regressions > * triggered once all the results for a particular revision are in > * removing duplicates with simple criteria > * optimising builder usage while waiting for runtime test results > The pipeline logic boils down to this: > 1. look for base 'good' commit with reference branch (i.e. mainline) > 2. check bad / good commits > 3. iterate with git bisect > 4. check found commit and revert in place to check it fixes the issue > 5. send email report in reply to the original patch thread > (or alternatively build a list of recipients from the commit) > It would be wise to send reports to a fixed audience initially for > moderation until it's deemed good enough for automated replies. I think there's a bunch of stuff we can do a lot better here than the v1 stuff did - the big one is sharing the builds and test runs between multiple bisections. Especially with the builds it's relatively common to be able to share at least the first step or two of a set of bisections (eg, if two tests fail on the same build we can reuse the build), and it's not uncommon for multiple tests in the same test job fail at once with the same or closely related causes. You can get something a whole lot more responsive that's still very simple in implementation. Doing builds and tests as Maestro jobs probably gets us a lot of the way there, what Arisu has implemented already in kci-dev but rearranged a bit with more of a server focus (eg, driving multiple bisects in parallel). > Stage 2: expanded coverage > -------------------------- > * add primitive support for metrics-based results e.g. thresholds BTW throwing https://otava.apache.org/ out there in case people haven't seen it. More relevantly there's also the fastpath bisection stuff. > Stage 3: advanced features > -------------------------- > Using 'git bisect' has its own limitations. It's great during > development but automated systems have different use cases. A more There's also stuff like mining history and throwing test results that we already have in the range at the bisect (eg, if we've tested commits on a different branch or as part of another bisect), not particularly smart in terms of the bisect algorithms or anything but making use of the data set that KernelCI is building up to try to improve their performance. Another idea that's getting more into trying to be actually clever would be looking at the builds we've already got and testing those if they're somehow close enough to what we might have otherwise chosen rather than spending time doing another build. > their tree (e.g. -rc2 tag). Semi-automated bisections is also > something to explore, with a command line that 'git bisect' can run > on each iteration and the ability to trigger fully automated ones > manually. There's the bisect stuff Arisu did in kci-dev that I mentioned for the first bit. > So this is a bit of a brainstom or braindump exercise without > actually diving into anything in much detail. It'll be interesting > to see how this combines with others' experience of automated > bisections in various environments. Hope this helps! Yeah, likewise. --sRUg/N4PsNSAFS4u Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmmyB5oACgkQJNaLcl1U h9BO6wf8DIjFM2QWgE9IXkquY5//VMfsTZq+A4L/6bazmIt8toOatT8lBSGK60QX kZPFWNVM8OtLfWLC5YOTbVT+sgSQhO3Sn5HF+Lxb5Y0Jz9vr4ucar8sOTKmiOBcs qwmjpan5KeJKMXCU/q6myVDnMnL3a7r7TroLXLAp5ijMVToEgA1uFyRZ0yRKyTQD fPOl4LgjA7phoeUe3EMlFm0pyFWJ1s3Rml2nPdyHB1yhXGLfkZHhBExCDEkhC1T0 9+0FASYFRwfclAd5N2WCuore9hNE4W2u5IiJsgxrBPAqZMk7ei8MCrr+Zy8uv6kN 3tvgRwN1hIzk5oitDS987RMQCOHrhw== =Xxv5 -----END PGP SIGNATURE----- --sRUg/N4PsNSAFS4u--