SlideShare a Scribd company logo
1 of 31
Download to read offline
Driving and virtualizing control systems: the Open
Source approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Academia-Industry Matching event on Technology of Controls for Accelerators and Detectors
November 2013
Agenda

Knowing Igalia
The value of the Open Source approach
Open Source approach in WhiteRabbit
A walk on technical details and demo

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
What is Igalia?
Open Source Company
40 engineers and hackers working around the globe
Hacking upstream in different technologies and
communities
kernel (Linux)
virtualization (QEMU/KVM)
browsers/multimedia (WebKit, Blink, GStreamer...)
compilers (V8, JavaScriptCore...)
UI (GTK+,...)
documents (Evince, LibreOffice...)
distros (Debian, Tizen...)
automotive/IVI

13 years old now!
www.igalia.com

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Partnering

Linux Foundation
www.linuxfoundation.org/newsmedia/announcements/2011/04/igalia-joins-linuxfoundation
W3C
www.igalia.com/nc/igalia-247/news/item/igalia-joinsthe-world-wide-web-consortium
Tizen Association
www.igalia.com/nc/igalia-247/news/item/igalia-joinsthe-tizen-association-partner-program/
...

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
What services and solutions provides Igalia?

We are experts in Open Source Software solutions
We help companies and institutions to achieve open
developments aligned with their culture and business
models
We collaborate with customers through concrete and
well-defined projects
Usual customer’s needs ranges from expert technical
development, support and training to strengthen in-house
teams or requiring a technical link between project and
open communities

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Can your project take advantage of an open
approach?

To take serious advantage of Open Source approach you
should avoid using open and free software only
(consuming). You should take in consideration producing
it as WhiteRabbit community is doing!
It requires understanding the ’upstreaming concept’ in
Open Source projects
We will see the upstream concept quickly in order to
illustrate it with the WhiteRabbit experience

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
What is upstreaming?

Upstreaming refers to the practice of contributing source
code that has been developed independently or in-house
back to an open source project.
Having code accepted upstream provides several benefits
to the open source project, the companies submitting code
to upstream projects, and the open source ecosystem in
general.

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Advantages of Upstream Alignment

Accelerate Innovation
Minimize R&D Costs
Gain Additional Contributors
Increase Code Quality
Enable Faster Integration and Testing
Influence the project’s direction
Provide stability to the open source project

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
CERN and Igalia collaboration (I)
Started in 2012
Collaboration between CERN’s BE-CO-HT section and
Igalia’s Kernel/Virtualization team
Worked around FMC/TDC board in the WhiteRabbit
context
Igalia was in charge of Linux kernel driver development,
testing and quality for this board
In this project we started to develop virtual hardware for
an open virtualizator/emulator (QEMU/KVM)
We introduced part of our collaboration with CERN based
on automatic testing, continuous integration and quality
for Linux drivers using virtual hardware in LinuxCon 2012
In this conference, LinuxCon, Igalia promotioned some of
the technologies used in CERN and the WhiteRabbit
project as part of this collaboration
Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
CERN and Igalia collaboration (II)
In summary, this collaboration related with control aspects
raised value in the following aspects:
Speeding up Linux driver development for one custom
board designed in CERN
Developed virtual hardware for automatic testing,
continuous integration and safe tests
Supported the collaboration’s upstream process with code
in different communities (Linux, QEMU, Open Hardware
Repository and KiCAD mainly)
We introduced this collaboration and experience in
LinuxCon 2012. A very relevant conference in the industry
Related to this collaboration, some of our customers found
useful the open virtual hardware approach to reduce
development times, working in parallel with hardware
designers, redesigning firmware’s interface or running
agressive testing
Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Technical details and demo

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Our work in kernel

Industry Pack bus
TEWS TPCI-200.
GE IP-OCTAL-232.

FMC bus (WhiteRabbit project)
FMC TDC board

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Industry Pack drivers

Open Source drivers developed at CERN.
Mainstream Linux kernel support added in 2012.
In Staging in May 2012.
Moved to mainstream in November 2012.

Three drivers:
ipack bus driver
TEWS TPCI-200 carrier board
GE IP-OCTAL: 8 channel serial port device

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Industry Pack boards

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
FMC TDC driver

Hosted in OHWR.
http://www.ohwr.org/projects/fmc-tdc-sw

Tested on a SPEC board.
It uses ZIO framework to bring an I/O device to
user-space.
It uses the FMC bus driver to register the mezzanine in the
system.
FMC bus is supported in mainline kernel as of June 2013.

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
FMC TDC board

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Our work in virtualization

Virtualized models
Industry Pack: Added to QEMU in 2012.
TEWS TPCI-200
GE IP-OCTAL-232

FMC TDC
SPEC board (only needed bits)
FMC TDC board

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
FMC TDC board virtualization

When developing the driver, we saw some problems:
No enough devices for all developers
FW is not mature enough
Which is the source of the error?

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
FMC TDC board virtualization

So we created a virtual model of the device
Virtualized just some specific bits of SPEC
Same memory addresses and registers than the real FW
We can test error conditions to improve driver’s robustness

Could it be possible to test the driver automatically?

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
FMC TDC board: Error conditions

It was needed to test error conditions on the driver
Generic stuff
The virtual board in being detected by the driver as a
genuine device
Normal mode: no error injection

DMA errors
Set up different input pulse configurations

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
How we did that

QEMU (http://wiki.qemu.org)
Open source machine emulator and virtualizer
Allow us to play with different setups
If has nice features: snapshot, shared folders, no screen, etc

Buildbot (http://trac.buildbot.net/)
Continuous integration system designed to automate the
build/test cycle
Python. Web interface to check the logs

Our own testing suite
Based on Sam’s experience working with PTS in the past
Needed more flexibility: different setups for the same test
Developed in Python, as PTS

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
The result (I)

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
The result (II)

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
The result (III)

http://tdc-buildbot.igalia.com
Username: buildbot
Password: qemulinux

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
The result (IV)

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
The result (V)

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Results

We could test different conditions:
Choose memory size, virtual machine image, network, etc
Different kernel versions
As is uses continuous integration -> Detect which commit
added the error

Based on Open Source technologies
Can be modified to validate complex systems before they
are done

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Links (I)

CERN/Igalia collaboration
www.igalia.com/kernel
blogs.igalia.com/jmunhoz/blog/2012/12/14/follow-thewhite-rabbit-working-with-cern.html

Industry Pack drivers
blogs.igalia.com/siglesias/2012/11/23/fmc-tdc-driver

FMC TDC driver
FMC projects SPEC, FMC TDC and FMC TDC software
blogs.igalia.com/siglesias/2012/11/23/fmc-tdc-driver/

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Links (II)
CI, testing suites and virtual hardware (QEMU)
blogs.igalia.com/berto/2012/10/03/industrypack-qemuand-linuxcon/
blogs.igalia.com/berto/2012/11/28/qemu-and-openhardware-spec-and-fmc-tdc/
events.linuxfoundation.org/.../pdf/lceu2012_garcia.pdf
blogs.igalia.com/magomez/2012/11/28/continuousintegration-and-testing-driver-development-and-virtualhardware-the-fmc-tdc-experience/

Fixing bugs upstream in KiCAD
blogs.igalia.com/jaragunde/2013/01/21/introducingkicad-because-open-hardware-needs-open-tools/
blogs.igalia.com/jaragunde/2013/01/30/kicad-bugsquashing-round-1/
blogs.igalia.com/jaragunde/2013/02/14/kicad-bugsquashing-round-2/
Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Questions & Answers

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
Thank you!

Driving and virtualizing control systems: the Open Source
approach used in WhiteRabbit

Javier Muñoz Mellid & Samuel Iglesias Gonsalvez

More Related Content

What's hot

WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
philn2
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
Didier Girard
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
Igalia
 

What's hot (20)

The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
 
WebXR and Browsers
WebXR and BrowsersWebXR and Browsers
WebXR and Browsers
 
About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)About OpenGL and Vulkan interoperability (XDC 2020)
About OpenGL and Vulkan interoperability (XDC 2020)
 
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
LaCrOs Progress
LaCrOs ProgressLaCrOs Progress
LaCrOs Progress
 
SVG in WebKit: Compositing Status
SVG in WebKit: Compositing StatusSVG in WebKit: Compositing Status
SVG in WebKit: Compositing Status
 
WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
Multimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/futureMultimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/future
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blocking
 
Ewebkit basic (Web rendering enging of EFL)
Ewebkit basic (Web rendering enging of EFL)Ewebkit basic (Web rendering enging of EFL)
Ewebkit basic (Web rendering enging of EFL)
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
 
WebKit and GStreamer
WebKit and GStreamerWebKit and GStreamer
WebKit and GStreamer
 
Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)Chromium on Wayland Desktop (BlinkOn 7)
Chromium on Wayland Desktop (BlinkOn 7)
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi Dewanto
 

Viewers also liked

Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Igalia
 

Viewers also liked (7)

Vibrant info-sheet-2015
Vibrant info-sheet-2015Vibrant info-sheet-2015
Vibrant info-sheet-2015
 
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
Good news, everybody! Guile 2.2 performance notes (FOSDEM 2016)
 
NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)NIR on the Mesa i965 backend (FOSDEM 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
 
Optimizing with persistent data structures (LLVM Cauldron 2016)
Optimizing with persistent data structures (LLVM Cauldron 2016)Optimizing with persistent data structures (LLVM Cauldron 2016)
Optimizing with persistent data structures (LLVM Cauldron 2016)
 
WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)WebKit Security Updates (GUADEC 2016)
WebKit Security Updates (GUADEC 2016)
 
Spelunking through JPEG with Racket (Sixth RacketCon)
Spelunking through JPEG with Racket (Sixth RacketCon)Spelunking through JPEG with Racket (Sixth RacketCon)
Spelunking through JPEG with Racket (Sixth RacketCon)
 

Similar to Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit (HEPTech Academia 2013)

Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015
Peter Gervais
 

Similar to Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit (HEPTech Academia 2013) (20)

Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Testing and HW Virtualization (7th White Rabbit Workshop)
Testing and HW Virtualization (7th White Rabbit Workshop)Testing and HW Virtualization (7th White Rabbit Workshop)
Testing and HW Virtualization (7th White Rabbit Workshop)
 
Linuxcon 2011 Crash Course in Open Source Cloud Computing
Linuxcon 2011   Crash Course in Open Source Cloud ComputingLinuxcon 2011   Crash Course in Open Source Cloud Computing
Linuxcon 2011 Crash Course in Open Source Cloud Computing
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
 
High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
 
ON.LAB Mininet
ON.LAB MininetON.LAB Mininet
ON.LAB Mininet
 
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPS
 
Dev Day Tokyo Hands-On Materials
Dev Day Tokyo Hands-On MaterialsDev Day Tokyo Hands-On Materials
Dev Day Tokyo Hands-On Materials
 
OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017
 
OpenShift: Devops Made Easy
OpenShift: Devops Made EasyOpenShift: Devops Made Easy
OpenShift: Devops Made Easy
 
Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015Gervais Peter Resume Oct :2015
Gervais Peter Resume Oct :2015
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 

More from Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

More from Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit (HEPTech Academia 2013)

  • 1. Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez Academia-Industry Matching event on Technology of Controls for Accelerators and Detectors November 2013
  • 2. Agenda Knowing Igalia The value of the Open Source approach Open Source approach in WhiteRabbit A walk on technical details and demo Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 3. What is Igalia? Open Source Company 40 engineers and hackers working around the globe Hacking upstream in different technologies and communities kernel (Linux) virtualization (QEMU/KVM) browsers/multimedia (WebKit, Blink, GStreamer...) compilers (V8, JavaScriptCore...) UI (GTK+,...) documents (Evince, LibreOffice...) distros (Debian, Tizen...) automotive/IVI 13 years old now! www.igalia.com Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 5. What services and solutions provides Igalia? We are experts in Open Source Software solutions We help companies and institutions to achieve open developments aligned with their culture and business models We collaborate with customers through concrete and well-defined projects Usual customer’s needs ranges from expert technical development, support and training to strengthen in-house teams or requiring a technical link between project and open communities Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 6. Can your project take advantage of an open approach? To take serious advantage of Open Source approach you should avoid using open and free software only (consuming). You should take in consideration producing it as WhiteRabbit community is doing! It requires understanding the ’upstreaming concept’ in Open Source projects We will see the upstream concept quickly in order to illustrate it with the WhiteRabbit experience Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 7. What is upstreaming? Upstreaming refers to the practice of contributing source code that has been developed independently or in-house back to an open source project. Having code accepted upstream provides several benefits to the open source project, the companies submitting code to upstream projects, and the open source ecosystem in general. Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 8. Advantages of Upstream Alignment Accelerate Innovation Minimize R&D Costs Gain Additional Contributors Increase Code Quality Enable Faster Integration and Testing Influence the project’s direction Provide stability to the open source project Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 9. CERN and Igalia collaboration (I) Started in 2012 Collaboration between CERN’s BE-CO-HT section and Igalia’s Kernel/Virtualization team Worked around FMC/TDC board in the WhiteRabbit context Igalia was in charge of Linux kernel driver development, testing and quality for this board In this project we started to develop virtual hardware for an open virtualizator/emulator (QEMU/KVM) We introduced part of our collaboration with CERN based on automatic testing, continuous integration and quality for Linux drivers using virtual hardware in LinuxCon 2012 In this conference, LinuxCon, Igalia promotioned some of the technologies used in CERN and the WhiteRabbit project as part of this collaboration Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 10. CERN and Igalia collaboration (II) In summary, this collaboration related with control aspects raised value in the following aspects: Speeding up Linux driver development for one custom board designed in CERN Developed virtual hardware for automatic testing, continuous integration and safe tests Supported the collaboration’s upstream process with code in different communities (Linux, QEMU, Open Hardware Repository and KiCAD mainly) We introduced this collaboration and experience in LinuxCon 2012. A very relevant conference in the industry Related to this collaboration, some of our customers found useful the open virtual hardware approach to reduce development times, working in parallel with hardware designers, redesigning firmware’s interface or running agressive testing Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 11. Technical details and demo Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 12. Our work in kernel Industry Pack bus TEWS TPCI-200. GE IP-OCTAL-232. FMC bus (WhiteRabbit project) FMC TDC board Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 13. Industry Pack drivers Open Source drivers developed at CERN. Mainstream Linux kernel support added in 2012. In Staging in May 2012. Moved to mainstream in November 2012. Three drivers: ipack bus driver TEWS TPCI-200 carrier board GE IP-OCTAL: 8 channel serial port device Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 14. Industry Pack boards Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 15. FMC TDC driver Hosted in OHWR. http://www.ohwr.org/projects/fmc-tdc-sw Tested on a SPEC board. It uses ZIO framework to bring an I/O device to user-space. It uses the FMC bus driver to register the mezzanine in the system. FMC bus is supported in mainline kernel as of June 2013. Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 16. FMC TDC board Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 17. Our work in virtualization Virtualized models Industry Pack: Added to QEMU in 2012. TEWS TPCI-200 GE IP-OCTAL-232 FMC TDC SPEC board (only needed bits) FMC TDC board Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 18. FMC TDC board virtualization When developing the driver, we saw some problems: No enough devices for all developers FW is not mature enough Which is the source of the error? Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 19. FMC TDC board virtualization So we created a virtual model of the device Virtualized just some specific bits of SPEC Same memory addresses and registers than the real FW We can test error conditions to improve driver’s robustness Could it be possible to test the driver automatically? Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 20. FMC TDC board: Error conditions It was needed to test error conditions on the driver Generic stuff The virtual board in being detected by the driver as a genuine device Normal mode: no error injection DMA errors Set up different input pulse configurations Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 21. How we did that QEMU (http://wiki.qemu.org) Open source machine emulator and virtualizer Allow us to play with different setups If has nice features: snapshot, shared folders, no screen, etc Buildbot (http://trac.buildbot.net/) Continuous integration system designed to automate the build/test cycle Python. Web interface to check the logs Our own testing suite Based on Sam’s experience working with PTS in the past Needed more flexibility: different setups for the same test Developed in Python, as PTS Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 22. The result (I) Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 23. The result (II) Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 24. The result (III) http://tdc-buildbot.igalia.com Username: buildbot Password: qemulinux Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 25. The result (IV) Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 26. The result (V) Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 27. Results We could test different conditions: Choose memory size, virtual machine image, network, etc Different kernel versions As is uses continuous integration -> Detect which commit added the error Based on Open Source technologies Can be modified to validate complex systems before they are done Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 28. Links (I) CERN/Igalia collaboration www.igalia.com/kernel blogs.igalia.com/jmunhoz/blog/2012/12/14/follow-thewhite-rabbit-working-with-cern.html Industry Pack drivers blogs.igalia.com/siglesias/2012/11/23/fmc-tdc-driver FMC TDC driver FMC projects SPEC, FMC TDC and FMC TDC software blogs.igalia.com/siglesias/2012/11/23/fmc-tdc-driver/ Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 29. Links (II) CI, testing suites and virtual hardware (QEMU) blogs.igalia.com/berto/2012/10/03/industrypack-qemuand-linuxcon/ blogs.igalia.com/berto/2012/11/28/qemu-and-openhardware-spec-and-fmc-tdc/ events.linuxfoundation.org/.../pdf/lceu2012_garcia.pdf blogs.igalia.com/magomez/2012/11/28/continuousintegration-and-testing-driver-development-and-virtualhardware-the-fmc-tdc-experience/ Fixing bugs upstream in KiCAD blogs.igalia.com/jaragunde/2013/01/21/introducingkicad-because-open-hardware-needs-open-tools/ blogs.igalia.com/jaragunde/2013/01/30/kicad-bugsquashing-round-1/ blogs.igalia.com/jaragunde/2013/02/14/kicad-bugsquashing-round-2/ Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 30. Questions & Answers Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez
  • 31. Thank you! Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez