1 / 14

Verificarea submisiilor de actualizare a surselor kernel-ului Linux

Verificarea submisiilor de actualizare a surselor kernel-ului Linux. Autori : Radu Caragea E-mail : sinaelgl@gmail.com. Kcheck in a nutshell. D ezvoltare ş i testare componente din kernel core Input: Arhiv ă kernel Benchmarks Patch Proces: Compilare optimizat ă

brady-boyer
Download Presentation

Verificarea submisiilor de actualizare a surselor kernel-ului Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar Ixia Verificarea submisiilor de actualizare asurselor kernel-ului Linux Autori: Radu Caragea E-mail: sinaelgl@gmail.com

  2. Seminar Ixia Kcheck in a nutshell • Dezvoltare şi testare componente din kernel core • Input: • Arhivă kernel • Benchmarks • Patch • Proces: • Compilare optimizată • Bootare şi rulare în container • Output: • Orice tip de statistici on demand • Output de la benchmarks • Early kernel output (in case anything goes horribly wrong)

  3. De ce nu module ? Modulele acoperă o gamă foarte largă de aplicaţii, însă... Schimbări dizruptive (performanţă) Scheduler Basic din 1991 până în 2002 O(1) până în 2008 Completely fair de atunci Interfeţe Hash tables Mecanisme de sincronizare 27.10.2014 Seminar Ixia 3

  4. Scenariude utilizare Se construiesc testele de performanţă şi/sau validare Target: Kernel: versiune şi configuraţie Arhitectură Configuraţie hardware: procesoare, memorie, device-uri prin passthrough Execuţie în două faze: Compilare şi Rulare 27.10.2014 Seminar Ixia 4

  5. Arhitectură. Faza 1 Command Line Interface Interfaţat peste API Sandbox local Primeşte configuraţia target Compilare în background Profile per-utilizator Probleme de performanţă 27.10.2014 Seminar Ixia 5

  6. Ccache Frontend pentru compilator Parser pentru preprocesare Bază de date – hashing Exemplu real world: compilare kernel “make –j5” Gcc: 12 min 5 s (100%) Ccache prima compilare, bază de date goală: 12 min 31 s (103%) Ccache a doua compilare: 2 min 12 s (18%) Output cache hit (direct) 3699 cache hit (preprocessed) 1942 cache miss 3816 files in cache 6753 27.10.2014 Seminar Ixia 6

  7. Arhitectură. Faza 2 Kernel image obţinut din faza precedentă Automatizare Comandare maşină virtuală programatic Copiere kernel Copiere benchmark Booting de pe noul kernel Verbose output Mesaje kernel Output benchmark Este netconsole de ajuns ? 27.10.2014 Seminar Ixia 7

  8. Qemu & KVM Qemu Emulator de procesoare: suportă mai multe arhitecturi decât încap pe slide Rulare maşină virtuală full-fledged în fereastră KVM Bazat pe Qemu; Virtualizare nu emulare Accelerare pentru aceeaşi arhitectură Suport direct în kernel Passthrough hardware Foloseşte extensiile de virtualizare din procesor Sponsorizat de RedHat: dezvoltare foarte activă 27.10.2014 Seminar Ixia 8

  9. Libvirt API peste hipervizor: “vm-agnostic” XEN LXC VMWare, VirtualBox, KVM, Qemu, Hyper-V Implementat peste KVM iniţial CLI-ul evidenţiază uşurinţa în utilizare virsh -c qemu:///system start “VM1“ virsh -c qemu:///system snapshot-create “VM1“ virsh -c qemu:///system snapshot-revert “VM1" –snapshotname 1 Pentru preluarea datelor de pe serială: virsh -c qemu:///system attach-device “VM1“ serial_to_pipe_device_description.xml 27.10.2014 Seminar Ixia 9

  10. Serial_to_pipe_device.xml <serial type='pipe'> <source path='/tmp/mypipe' /> <target port=‘0' /> </serial> 27.10.2014 Seminar Ixia 10

  11. Libvirt-sandbox API C, bindinguri python, perl etc. Executare binar direct în hipervizor Output imediat, direct pe host Permite bindinguri la nivel de fişier/director între host şi guest Permite chiar rulare executabil interactiv: shell True Sandboxing !! 27.10.2014 Seminar Ixia 11

  12. Libvirt-sandbox exemplu $ virt-sandbox -c qemu:///system /bin/date Thu Jan 12 22:30:03 GMT 2012 $ virt-sandbox -c qemu:///system /bin/sh sh-4.2$ ps -axuwf USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 165436 3756 pts/0 Ss+ 22:31 0:00 libvirt-sandbox-init-qemu root 24 0.0 0.1 167680 4688 pts/0 S+ 22:31 0:00 libvirt-sandbox-init-common root47 0.0 0.0 13852 1608 pts/1 Ss 22:31 0:00 \_ /bin/sh root 48 0.0 0.0 13124 996 pts/1 R+ 22:31 0:00 \_ ps -axuwf 27.10.2014 Seminar Ixia 12

  13. Unde va fi folosit întâi Vmchecker Kernel programming challenges Exemplu basic: Se dă o aplicaţie ce rulează în spate asincron dar care performează foarte prost cu I/O schedulerul default. Se cere o analiză detaliată pentru performance penalties şi rescrierea schedulerului pentru a funcţiona optim dacă se rulează doar aplicaţia respectivă. 27.10.2014 Seminar Ixia 13

  14. Vedere de ansamblu 27.10.2014 Seminar Ixia 14

More Related