Bestand wählen
Merken

LAVA for bisecting kernel bugs

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the you know know hello my name is required here and I work at narrowing that so-called build some baseline scheme we build a images and run various tests on them that the kernel developers have created a set of kernels to test and the QA was destined but field the minerals in the between so In this talk we will be discussing at about which we use for a pair of this thing and deep by bisect which is a tool that is enables people to find where exactly the problems happening which comet was the thing that broke things down here we have an imaginary case that somehow it has passed the testing that the time doesn't work anymore it's in 1970 the last release it worked now we need to find out what exactly caused a problem the did my sect is that tool how many here have used did by sector so almost everyone if you haven't you should really well then manual part of people by sectors is rather simple you tell which the comet was where were role which is usually head because you are just debugging and then some comic where still things used to work then get bicycle algorithm will then start crunching the comets between defined which exact comic is broken it's quite similar to but very search so them out of this you need to do to get down to the board doesn't grow that much even if the comets get doubled the so each time you run the bicycle start it will give you a starting comment you build it he tested and then delta if it worked or not give bicycle bad for broken committee and you bicycle for success sh and I In this small we don't have that many commits to search so it took us 4 steps to find exactly which comet was the 1 that broke us down but if you have thousands of commits to search and less time to work on you proviral prefer something else calculated the eat bisect run is an advanced mode of this game by sector which will run as great and depending on the exit code of discrete it will decide if it was good or bad how many have used it by run a lot less but some people have so instead of sitting by your computer and running that make and test you just run the script to do the test you go do something else during it the in in this simplified example we have that bisecting script which is that kernel build the U. S. diff config and then we build the kernel and the GTB files for the what platform that exit code 125 is a budget value document that in that give manual page which means that skip this 1 In our case if the kernel bill fails we will simply ignoring that it's no problem unrelated to the 1 we are searching right now then the last line of the bicycle strip is my love of it's great that will would be the world will black and run a this script which was there in the 1st slide this the hardware cloth and if it returns successfully at that time was correct it will give that 0 exit code and something else if it breaks down I had repaired additional hardware here including at our unit and a piece bone but unfortunately I can't set it up running right now as expected so I have a pre-recorded demo as caution we had that same test districts
here that were on the slide slightly more verbose most because we have being more specific and we started with C Kashin because we don't want to wait as long the but he said 1st step starting here so and the script runs for a
while In accelerated timeframe it will report that get comic ID it's testing the kernel and
come out with the love our job this Crepaz now uploaded then kernel and the BTB and started the job 1 that lemma server that is locally locally now we're return back
to the slides were waiting for Finnish the in so love but is that tool that
men are uses for pretty much all testing we have there are some cases where people like to do their own stuff that we try to make love I useful for everyone inside Levallois the it could be stated that made by last service now the every everything should be reported we not designed a service it converts the developer boards we have into something that are available in Web by few cliques 11 we suddenly jobs for a device type and get down back the results at that minimum level requires serial axis it's like was Satan at earlier talk that of serial port is the most powerful thing in that Embedded World and if you don't have it on your board don't go somewhere else network is very useful it's possible to use love of without it but not really convenient our control any kind of automation of kernel development you have to have it in the most money of case you will just have a script that stays please go and reboot the board but it's not really out then the level has at command line interface and a web interface and it's available and at the end with just a bit to get installer if that demo case in this lemma laptop this laptop has is is valid inside a KB Umberto machine and the really bridge aware that gave him to death at the interface so all the NFS and TFTP services are easily available and for power control there's a small you as the box and relay here their web interface is alive but and currently it's idle because that demoware running is a prerecorded 1 you can see all the previous jobs down here the the status of the devices and so on if the convenience of having it all running inside a KBM means that when I'm usually using it at home I can have it and a server and when I'm traveling I can pick it up and just copy the virtual machine over to the laptop the lover has occurred bunch of components that are separated and include some kind of separation that it's not all 1 big bunch of code we submit job either using a command line tool or by the web interface that plumber server process listens to XML-RPC as well as just that know about web interface and will check that the job is OK and if it is it will be submitted to do dispatcher which will actually do the running of the job 1 Lebanese batteries is their main core process of taking care of the testing and this we had a graph the talks about master images we don't need that 1 since we both from just the of the in an NFS he greatly simplifies the use of an effect that use of a right you just keep track very small use case of it finally the results are
submitted back to control power on at there there are several options you can have up pricey EDU switch in from eBay from about 100 euros their new ones cost a lot more since the simplest and cheapest models are no longer available you can have some kind of home i automation system like this will be qt M power it's another looks like a power socket but it also has a edunet place you can connected with HTTP switch the individual ports on and off then going down to 2 odds that you'd embedded relay we have that box and relays which just need a bit little bit of wiring to get them to work and finally all the way down the hill to that nonsense area is doing the relay and the putting it to arrest break by it will just take it more not much more than 10 euros for the components if you have some kind of board that has GPI is already finally finally for future that in our we are creating an open that device and it's a Beagle Bone OK that will have the power and the net serial lines and more it's tailored for lab I use and did it combines a lot of that wiring you see here if you come to look at that desk after the lemma tool is that official command line interface for all our it stops the XML-RPC to server and it's Hassan Kronos so it's use just give it a job and it will return back i've been actually told that it's not completely true and it data there exist some way to make it soon grow so finally that problem for automation for automatic scripts is that it reads out indication talking and from non hearing and it means that you may have to type in that gearing password every now and then so Hey should working known about for example in some other desktop and the Romans it which I use it doesn't work so I had to do something else to make this bisecting possible so I wrote that level who discrete which is not a complete replacement of Lemma 2 it just takes care of the use cases I care of it's super supernova so it starts a job pulls the server as long as the job runs and then returns 1 it's finished the the it starts at small http server for that lemma to get its kernel and anti-TB for that target device and it has some convenience features like substituting variables so you don't have to edit that love up definition 5 for small changes of jobs and finally it stores out indication talk in in a configuration file which is slightly less insecure than having you think no hearing yet so that lot of mood interactions with that lemma server look a bit like this we start by sending that kernel and mood artifacts to the proxy process and then tell the love a dispatcher at the edge of control that we start the job that love a dispatcher with them all the kernel and other who died effects and provide them over an office in the at dpt that Beagle Bone target then it opens the serial line and the becomes essentially a glorified expects script and runs all all the commands you want on The Beagle Bone target finally as that short short part shortcut I just returned that it's a code back to that proxy to process instead of the alibi dispatcher a more please set up would be to just I read that the values of the best results from that all of our results bundle but it turned out to be untrue bl and I do run out of time to do it so here I have to make us short but so this authentication token I've been talking about is that the key to how to make love our it's a bit like that much on out indication token if you've been using them out web services you need to log in to that level web server pulls out and to create a new authentication token and then copy pasted from that web down to a configuration file the the configuration file used by the love of Moody's rather simple you just tell you what the states you keep the address of the web server what this that and the user account token and their proxies has seen as from the love a dispatcher and finally the only mandatory option still left this that if it's http or HTTP S the the love job definition used by love of movies in yam all so you can also use Jason but Gamal is a lot shorter so you just define that allow the command deployed in our kernel which is the 1 that finds the kernel device tree and NFS rule file system we have that would command pin which we just use this standard things as defined in the about device configuration you could also have your own script around on you boot for many other variables you can give to book in our image but in this case we don't need to give anything I finally we have that this definition down there which is being pulled from the proxy that this definition will include that how sea test scripts and of course you need to tell about what is the actual device type you want at this time so after that variables have been substituted by the script that it looks a bit more like this it will take the proxy from the configuration file and that devised tree image type and so on from that target specific configurations and then we have this this definition young which is 5 included in the script so you don't have to really care about which will just call that script that we gave on the command line so if we go back to the end
of the demo we have found
after a bunch of so that there is a specific comic that has broken down the set up OK someone decided to that we don't need pop support anymore and no 1 actually tested it completely in this In this case it took us 22 minutes to find out the actual but and it was something like 8 or 9 steps we had to do to compile a moved the kernel 7 steps the the
so bisecting is rather useful and convenient but it's also not without issues the 1st that can or should work for pretty much or whatever software you're testing it should generally work for every single comic and if you have not sloppy work culture he means that perhaps every 2nd comet works somewhat does 1 commit which is part the island then in the next comic fixes it these kind of keep trees are not really bisect the ball because it will find a lot of broken comics in between so the the cases of kernel you would take to this test every single book that it touches every single comic that it actually bullets then you have something that you can test for more complex test cases also if you're the tree has been marriages comets that touch random files all around us the result is that kid bisecting is not going to be simple you need may need to include increased the range of comets search so even though the comet happier from your point of view between say 2 . 6 . 16 kernel and 2 . 6 . 17 kernel you may have to try between 2 . 6 . 14 and 2 . 6 . 17 because some of the comets come from marriages that are from a lot longer time we have to remember that it is not our like never his story about something more like a directed basically graphs so it's not just that being our research you do when you do a b keep my sect is just good our software engineering practice when you use Git make sure that commits are relevant only to 1 thing if you have a topic branch make it sure that topic branch gets marriage upstream as soon as possible instead of leaving for a long time and this will help you in many other ways than just helping bisecting finally if the bodies reproducible only randomly then bisecting will give you completely wrong results so you have to actually test that that bodies consistently reproducible but so I no I have some references here there's that enjoy fighting regressions with get by 6 slides that I really recommend for anyone to read who hasn't been using get by it will give you a clear explanations of why it's possible that rest of that Our just manual pages and beloved documentations the slides are online already and I don't think I updated since their last upload data so they are even up to date so any questions and use to on all we of so it was asked how easy it is to combine level with other QA solutions in its current format not very easy but and then python code base should technically make it possible to use other code other QA solutions as well the the problem is that usually every q solution is complete so it does everything from that web reporting to running the tests and it's hard to take just 1 these from 1 QA system and another 1 from another 1 so there's been discussions about using at least out of test together with their level and there's something that could be used in OK so in you know the the of the so it was asked how would level of play together with it being bought and would it be around after the bin but build yes that's exactly how love of would be used together with bin but we use changes in this way in an hour or so we run that compiles and Jenkins & Jenkins will then call at a lot lot script to run the actual tests on lover OK this why is it and a requirement it was passed well and in its current form level will upon municate that test results and it would download the test cases over a network to the target device run the tests and return them back over a network it's somewhat possible to use without network then you would have to have some way to install an image on that device the act fast mood or something and this is not as convenient there's some fast food support and love of that I'm not sure if it's completely possible to use without networking we use you of course the so basically you're asking if it would be possible to use USB or some other method I don't see why it would be impossible but nobody has written the code for a lot for that so we shall what would you say makes it very you can also like Joe reuse nexus devices with the without network or a case so it is possible and the you of the when you would like to this real words was all and that's true so but as we show just said it is it is actually possible and I just didn't know about this site of that there our I guess it's using fast rule tiny ADP so the OK so this is possible but it's slightly Android specific right now here was the if you go out and of the so we had In this case I was
using an dead EM-based to file system system that was exported over NFS there's a slightly confusing target type which is saying the wound to which means the winter or deviance but anything with an a APK gets it's also possible to use open bed or other systems there some command line commands that it requires like w get for I think vitamin was needed for that love about this shell but you don't have to use the love about this show there is also the option of instead of having at an official depressed to have an innate RDN run the tests there that's even simpler and faster in some cases if you don't have for you that working network in the Linux but you have working at in the bootloader the the to the you my it was asked how easy would it be to add new devices like if you are not from an hour and it's actually quite easy you just take an existing configuration and replace what are the commands you would type in the boot loader with which are the same ones for your target device the so we have you will attend you if you support and those once you would probably not need to change much lines that have a more exotic bootloader than you might have to do some more complex configuration if all of the of this is the something a the and the book and a bit the I'm sure it would fit their especially since it open wrt AS network so you can have an NFS that where you could install the extra stuff in the United States yeah so and so that was that all about this show which is an advanced tool to return results into that web interface and it's somewhat optional so you can skip that part the the I really think of them as the you and what I read what what what might you say the the so it was passed what about microcontrollers and at the smaller devices that don't have an operating system I think it's currently outside the scope of our other things outside the scope of lies also bootloader testing so you could only we being discussed how it would be possible to test bootloader safely without breaking devices but in most cases it's not easy the the OK so that you want to do so you can also use because of the use of in the so you know what and so it was asked if there is a sub subversion support for bisect the answer as I believe is no so I get my sectors have very specific feature for most that reason when exposed to switch to get what any other questions and there was 1 of the 2 law or it was as what is the focus of the Linux kernel if it's just the kernel and what is the focus of love artist and just the kernel for on the kernel testing is the simplest thing you can do with the about but you can also test a lot of stuff in the user space side we run LTP tests to validate a lot of the fact go down with my friend benchmark statistic things don't regress and so on so after a lot of has moved to this system here pretty much free to run any kind of scripts for any testing again and and the few
Kernel <Informatik>
Subtraktion
Demo <Programm>
Computer
Computer
Systemplattform
Code
Whiteboard
Kernel <Informatik>
Metropolitan area network
Einheit <Mathematik>
Algorithmus
Bit
Spieltheorie
Code
Skript <Programm>
Skript <Programm>
Punkt
Softwareentwickler
Konfigurationsraum
Gerade
Bildgebendes Verfahren
Demo <Programm>
Softwaretest
Algorithmus
ATM
Architektur <Informatik>
Hardware
Nummerung
Elektronische Publikation
Rechenschieber
System F
Datenfeld
Menge
Mereologie
Hill-Differentialgleichung
Compiler
Rechenschieber
Skript <Programm>
Prozess <Informatik>
Programm/Quellcode
Server
Kernel <Informatik>
Resultante
Webforum
Demo <Programm>
Bit
Prozess <Physik>
Übergang
Kernel <Informatik>
Shareware
Softwaretest
Prozess <Informatik>
Lemma <Logik>
Skript <Programm>
Clique <Graphentheorie>
Schnittstelle
Softwaretest
Datennetz
Programm/Quellcode
Rechenschieber
Filetransferprotokoll
Dienst <Informatik>
Software
Rechter Winkel
Server
Schnittstelle
Server
Quader
Kontrollstruktur
Dienst <Informatik>
Code
Whiteboard
Virtuelle Maschine
Weg <Topologie>
Benutzerbeteiligung
Notebook-Computer
Datentyp
Zusammenhängender Graph
Installation <Informatik>
Softwareentwickler
Bildgebendes Verfahren
Leistung <Physik>
Trennungsaxiom
Soundverarbeitung
Benutzeroberfläche
Architektur <Informatik>
Graph
Gerade
Gamecontroller
Leistung <Physik>
Speicherabzug
Serielle Schnittstelle
Resultante
Kernel <Informatik>
Demo <Programm>
Bit
Prozess <Physik>
Adressraum
Übergang
Eins
Kernel <Informatik>
Netzwerktopologie
Web Services
Prozess <Informatik>
Code
Lemma <Logik>
Dateiverwaltung
Skript <Programm>
Kontrollstruktur
Softwaretest
Umwandlungsenthalpie
Schnelltaste
Vervollständigung <Mathematik>
Programm/Quellcode
Prozessautomation
Variable
Konfiguration <Informatik>
Token-Ring
Analog-Digital-Umsetzer
Server
Schlüsselverwaltung
Aggregatzustand
Magnetbandlaufwerk
Proxy Server
Server
Gewicht <Mathematik>
Quader
Mathematisierung
Interaktives Fernsehen
Whiteboard
Code
Informationsmodellierung
Benutzerbeteiligung
Variable
Authentifikation
Datentyp
Vererbungshierarchie
Skript <Programm>
Zusammenhängender Graph
Passwort
Indexberechnung
Konfigurationsraum
Bildgebendes Verfahren
Leistung <Physik>
Architektur <Informatik>
Booten
Schlussregel
Token-Ring
Elektronische Publikation
Gerade
Hill-Differentialgleichung
Persönliche Identifikationsnummer
Office-Paket
Flächeninhalt
Mereologie
Gamecontroller
Authentifikation
Serielle Schnittstelle
Brennen <Datenverarbeitung>
Resultante
Kernel <Informatik>
Maschinenschreiben
Web Site
Punkt
Schaltnetz
Mathematisierung
NP-hartes Problem
Ungerichteter Graph
Komplex <Algebra>
Code
Kernel <Informatik>
Übergang
Netzwerktopologie
Benutzerbeteiligung
Spannweite <Stochastik>
Bildschirmmaske
Softwaretest
Software
Lineare Regression
Binärdaten
Schätzung
Rechenschieber
Skript <Programm>
Booten
Bildgebendes Verfahren
Softwaretest
Lineare Regression
Architektur <Informatik>
Sichtenkonzept
Datennetz
Programm/Quellcode
Verzweigendes Programm
Schlussregel
Strömungsrichtung
Physikalisches System
Elektronische Publikation
Rechenschieber
Diskrete-Elemente-Methode
COM
Rechter Winkel
Maschinenschreiben
Mereologie
Dateiformat
Wort <Informatik>
Software Engineering
Resultante
Bit
Nabel <Mathematik>
Gesetz <Physik>
Raum-Zeit
Kernel <Informatik>
Eins
Lineare Regression
Netzbetriebssystem
Datentyp
Dateiverwaltung
Skript <Programm>
Konfigurationsraum
Gerade
Benchmark
Softwaretest
Statistik
Benutzeroberfläche
Booten
Datennetz
Physikalisches System
Fokalpunkt
Konfiguration <Informatik>
Radon-Transformation
Offene Menge
Mereologie
Lie-Gruppe

Metadaten

Formale Metadaten

Titel LAVA for bisecting kernel bugs
Untertitel LAVA meets GIT bisect run
Alternativer Titel Embedded - Using LAVA for bisecting bugs
The Linaro Automated Validation Architecture
Serientitel FOSDEM 2015
Autor Voipio, Riku
Lizenz CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/34376
Herausgeber FOSDEM VZW
Erscheinungsjahr 2016
Sprache Englisch
Produktionsjahr 2015

Inhaltliche Metadaten

Fachgebiet Informatik

Ähnliche Filme

Loading...
Feedback