Building Linux-based low-latency audio processing software for nowadays multi-core devices can be cumbersome. I’ll present some of our on-going research on the topic at the Real-Time Systems Lab of Scuola Superiore Sant’Anna, focusing on sound synthesis on Android where power-efficiency is a must.
The talk will provide basic background information on how the audio sub-system of Linux works, in terms of interactions between the Linux kernel and the ALSA sound architecture, including how user-space applications normally cope with low-latency requirements, touching briefly on design concepts behind the existence of the JACK low-latency framework. Then, a few concepts will be provided on the peculiarities of the Android audio processing pipeline, crossing the concepts with the due complications arising from the world of mobile and power-efficient devices. Throughout the talk, I’ll touch upon concepts behind our research efforts on the topic, describing how properly designed real-time CPU scheduling strategies can make a difference in what is achievable in this area.
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...linuxlab_conf
Introduction to firmware reverse engineering process of IoT devices. The process, described with an example on a home router, is based on Information Gathering of hardware and software, Building of an Emulation Environment to run binaries, and Techniques to analyze, hack and modify the firmware.
The introduction to firmware reverse engineering process is described with a real example, done by the author, on a recent home router with the target to load a modified firmware overcoming the router protection that doesn’t allow loading of unsigned firmware (ref: https://github.com/digiampietro/adbtools2 )
The process described is based on:
Information Gathering hw: identify main device components (CPU, Flash, SDRAM, main components) hw: locate UART and JTAG interfaces hw tools: Bus Pirate, OpenOCD, Jtagulator sw: get os image file or firmware file sw tools: strings, file, binwalk, dd, jefferson, uncramfs etc. identification of CPU, Flash, RAM, kernel version, C library, toolchain used etc. identification of Original Manufacturer and Original Firmware Manufacturer Emulation Environment using QEMU select a QEMU machine and CPU reasonably similar to the IoT device (same CPU, similar kernel version, similar modules and libraries) select a tool to build the kernel and the root file system (brief description of Yocto Project, Buildroot and OpenWRT build system). Buildroot will be used in the example and described in more detail Buildroot and kernel configuration, generation of root file system with binaries and libraries with debugging information Overcoming obstacles created by the firmware manufacturer Running interesting binaries in the emulated environment Use tools like strace, ltrace, gdb to reverse engineer the most interesting binaries Analyze how the device works the firmware upgrade process CLI and Web interface analisys main processes analisys finding vulnerabilities hacking into the system hack the firmware upgrade process replace the original firmware Create a Firmware Modification Kit to simplify the firmware modification process.
Luca Abeni - Real-Time Virtual Machines with Linux and kvmlinuxlab_conf
This talk describes how to use some available technologies (the SCHED_DEADLINE scheduling policy, the PREEMPT_RT patchset, etc…) to execute real-time applications in kvm-based virtual machines while still providing performance guarantees to the virtualized applications.
In recent years, there has been a growing interest in supporting virtualized services even in embedded and real-time systems. However, executing real-time applications (characterized by temporal constraints) in virtual machines is not straightforward and presents some non-trivial challenges. This talk will describe how to use some technologies already available in the Linux kernel (the SCHED_DEADLINE scheduling policy, the PREEMPT_RT patchset, etc…) to execute real-time applications in kvm-based virtual machines while still providing performance guarantees to the virtualized applications. After presenting the problem (and providing a quick summary about real-time scheduling), it will be shown how to configure the host and guest kernels and the virtual machine, and how to schedule the VM threads in order to achieve predictable response times and to provide real-time guarantees.
Emanuele Faranda - Creating network overlays with IoT devices using N2Nlinuxlab_conf
When building a network of communicating IoT devices, it is compulsory to ensure that all the devices are reachable regardless of their IP address and location. This talk is about an open source software named n2n that enables secure communication over a lightweight and secure p2p network overlay.
When building a network of IoT devices, communication topology can be a problem as some of them might be behind a NAT, and some others might be reachable only from certain network nodes. Furthermore the advent of mobile and automotive computing with non persistent addressing will make all this even more challenging. To address all this, usually people use a centralised cloud-based topology that makes the network weak and not optimal, as all the devices have to communicate though this central point instead, when possible, to talk directly. However the cloud does not address privacy and security, in particular when IoT devices are used and developers and not fully aware of security issues: this can be addressed by a network overlay that tackles this problem at network instead that at application level This talk is about an open source, lightweight network overlay software named n2n ( https://github.com/ntop/n2n ) [available for Linux, BSD, MacOS, Windows] developed by the authors, that enables the creation of a persistent network that promotes secure communications even on environments where security is an option, or some communications are prevented by NATs or firewall devices.
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
This talk illustrates how to use the Jailhouse hypervisor for running Linux alongside an RTOS on modern ARM multi-core SoCs, aiming at building smarter devices for the automotive market.
Recently, the industry has shown a growing interest for executing activities with different levels of criticality on the same multi-core SoC. These could consist, for example, of non-critical activities (e.g., monitoring, logging, human-machine intefaces) together with safety-critical tasks. The rationale behind this interest is the continuous need for reducing the time-to-market as well as the design and hardware costs. This is particularly suitable for the automotive market, where new infotainment functionalities might be coupled with traditional safety-critical tasks (e.g. engine/brake control). In this talk, we will present our experience (grown through the HERCULES EU project) in using the Jailhouse hypervisor for executing the Linux general-purpose OS alongside an automotive RTOS on modern ARM multi-core platforms. Besides providing useful instructions for using Jailhouse, we will illustrate a library designed for easing the communication between the two OSs as well as some mechanism for limiting the interference on shared hardware resources. Finally, a short video of a simple demo will show the effectiveness of the proposed approach.
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
The development of device drivers usually requires hardware availability. We will try to address this issue by simulating our “missing” device thanks to a QEMU ARM machine. The fake device will be tested and debugged using bare-metal software, again running in QEMU. Finally, we will write a Linux device driver from scratch that will interact with the device and expose it to the userspace.
The training assumes some basic knowledge of the C programming language and using Linux as a development platform. During the training, we will show how to build the Linux kernel and write a simple yet complete device driver, how to use QEMU as a development platform and a few notions of bare-metal and kernel code debugging.
Andrea Righi - Spying on the Linux kernel for fun and profitlinuxlab_conf
Do you ever wonder what the kernel is doing while your code is running? This talk will explore some methodologies and techniques (eBPF, ftrace, etc.) to look under the hood of the Linux kernel and understand what it’s actually doing behind the scenes.
This talk explores methodologies that allow to take a look “live” at kernel internal operations, from a network perspective, to I/O paths, CPU usage, memory allocations, etc., using in-kernel technologies, like eBPF and ftrace. Understanding such kernel internals can be really helpful to track down performance bottlenecks, debug system failures and it can be also a very effective way to approach to kernel development.
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLinaro
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Speakers: Marc Zyngier, Christoffer Dall
Date: September 30, 2016
★ Session Description ★
KVM/ARM has grown up. While the initial implementation of virtualization support for ARM processors in Linux was a quality upstream software project, there were initial design decisions simply not suitable for a long-term maintained hypervisor code base. For example, the way KVM/ARM utilized the hardware support for virtualization, was by running a ‘switching’ layer of code in EL2, purely written in assembly. This was a reasonable design decision in the initial implementation, as the switching layer only had to do one thing: Switch between a VM and the host. But as we began to optimize the implementation, add support for ARMv8.1 and VHE, and added features such as debugging support, we had to move to a more integrated approach, writing the switching logic in C code as well. As another example, the support for virtual interrupts, famously known as the VGIC, was designed with a focus on optimizing MMIO operations. As it turns out, MMIO operations is a less important and infrequent operation on the GIC, and the design had some serious negative consequences for supporting other state transitions for virtual interrupts and had negative performance implications. Therefore, we completely redesigned the VGIC support, and implemented the whole thing from scratch as a team effort, with a very promising result, upstream since Linux v4.7. In this talk we will cover the evolution of this software project and give an overview of the state of the project as it is today.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-500
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-500/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
"Session ID: BUD17-104
Session Name: Scripting Languages in IoT: Challenges and Approaches - BUD17-104
Speaker: Paul Sokolovsky,
Track: LITE
★ Session Summary ★
Scripting languages is hot emerging topic in IoT. They allow easy learnability and rapid prototyping and further benefits (like production use) as they evolve. This session compares approaches of MicroPython and JerryScript/Zephyr.js projects and gives status update on their Zephyr RTOS ports.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-104/
Presentation: https://www.slideshare.net/linaroorg/bud17104-scripting-languages-in-iot-challenges-and-approaches
Video: https://youtu.be/lIO8QL2SRuU
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: IoT, scripting languages, Zephyr, LITE, Paul Sokolovsky,
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...linuxlab_conf
Introduction to firmware reverse engineering process of IoT devices. The process, described with an example on a home router, is based on Information Gathering of hardware and software, Building of an Emulation Environment to run binaries, and Techniques to analyze, hack and modify the firmware.
The introduction to firmware reverse engineering process is described with a real example, done by the author, on a recent home router with the target to load a modified firmware overcoming the router protection that doesn’t allow loading of unsigned firmware (ref: https://github.com/digiampietro/adbtools2 )
The process described is based on:
Information Gathering hw: identify main device components (CPU, Flash, SDRAM, main components) hw: locate UART and JTAG interfaces hw tools: Bus Pirate, OpenOCD, Jtagulator sw: get os image file or firmware file sw tools: strings, file, binwalk, dd, jefferson, uncramfs etc. identification of CPU, Flash, RAM, kernel version, C library, toolchain used etc. identification of Original Manufacturer and Original Firmware Manufacturer Emulation Environment using QEMU select a QEMU machine and CPU reasonably similar to the IoT device (same CPU, similar kernel version, similar modules and libraries) select a tool to build the kernel and the root file system (brief description of Yocto Project, Buildroot and OpenWRT build system). Buildroot will be used in the example and described in more detail Buildroot and kernel configuration, generation of root file system with binaries and libraries with debugging information Overcoming obstacles created by the firmware manufacturer Running interesting binaries in the emulated environment Use tools like strace, ltrace, gdb to reverse engineer the most interesting binaries Analyze how the device works the firmware upgrade process CLI and Web interface analisys main processes analisys finding vulnerabilities hacking into the system hack the firmware upgrade process replace the original firmware Create a Firmware Modification Kit to simplify the firmware modification process.
Luca Abeni - Real-Time Virtual Machines with Linux and kvmlinuxlab_conf
This talk describes how to use some available technologies (the SCHED_DEADLINE scheduling policy, the PREEMPT_RT patchset, etc…) to execute real-time applications in kvm-based virtual machines while still providing performance guarantees to the virtualized applications.
In recent years, there has been a growing interest in supporting virtualized services even in embedded and real-time systems. However, executing real-time applications (characterized by temporal constraints) in virtual machines is not straightforward and presents some non-trivial challenges. This talk will describe how to use some technologies already available in the Linux kernel (the SCHED_DEADLINE scheduling policy, the PREEMPT_RT patchset, etc…) to execute real-time applications in kvm-based virtual machines while still providing performance guarantees to the virtualized applications. After presenting the problem (and providing a quick summary about real-time scheduling), it will be shown how to configure the host and guest kernels and the virtual machine, and how to schedule the VM threads in order to achieve predictable response times and to provide real-time guarantees.
Emanuele Faranda - Creating network overlays with IoT devices using N2Nlinuxlab_conf
When building a network of communicating IoT devices, it is compulsory to ensure that all the devices are reachable regardless of their IP address and location. This talk is about an open source software named n2n that enables secure communication over a lightweight and secure p2p network overlay.
When building a network of IoT devices, communication topology can be a problem as some of them might be behind a NAT, and some others might be reachable only from certain network nodes. Furthermore the advent of mobile and automotive computing with non persistent addressing will make all this even more challenging. To address all this, usually people use a centralised cloud-based topology that makes the network weak and not optimal, as all the devices have to communicate though this central point instead, when possible, to talk directly. However the cloud does not address privacy and security, in particular when IoT devices are used and developers and not fully aware of security issues: this can be addressed by a network overlay that tackles this problem at network instead that at application level This talk is about an open source, lightweight network overlay software named n2n ( https://github.com/ntop/n2n ) [available for Linux, BSD, MacOS, Windows] developed by the authors, that enables the creation of a persistent network that promotes secure communications even on environments where security is an option, or some communications are prevented by NATs or firewall devices.
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
This talk illustrates how to use the Jailhouse hypervisor for running Linux alongside an RTOS on modern ARM multi-core SoCs, aiming at building smarter devices for the automotive market.
Recently, the industry has shown a growing interest for executing activities with different levels of criticality on the same multi-core SoC. These could consist, for example, of non-critical activities (e.g., monitoring, logging, human-machine intefaces) together with safety-critical tasks. The rationale behind this interest is the continuous need for reducing the time-to-market as well as the design and hardware costs. This is particularly suitable for the automotive market, where new infotainment functionalities might be coupled with traditional safety-critical tasks (e.g. engine/brake control). In this talk, we will present our experience (grown through the HERCULES EU project) in using the Jailhouse hypervisor for executing the Linux general-purpose OS alongside an automotive RTOS on modern ARM multi-core platforms. Besides providing useful instructions for using Jailhouse, we will illustrate a library designed for easing the communication between the two OSs as well as some mechanism for limiting the interference on shared hardware resources. Finally, a short video of a simple demo will show the effectiveness of the proposed approach.
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
The development of device drivers usually requires hardware availability. We will try to address this issue by simulating our “missing” device thanks to a QEMU ARM machine. The fake device will be tested and debugged using bare-metal software, again running in QEMU. Finally, we will write a Linux device driver from scratch that will interact with the device and expose it to the userspace.
The training assumes some basic knowledge of the C programming language and using Linux as a development platform. During the training, we will show how to build the Linux kernel and write a simple yet complete device driver, how to use QEMU as a development platform and a few notions of bare-metal and kernel code debugging.
Andrea Righi - Spying on the Linux kernel for fun and profitlinuxlab_conf
Do you ever wonder what the kernel is doing while your code is running? This talk will explore some methodologies and techniques (eBPF, ftrace, etc.) to look under the hood of the Linux kernel and understand what it’s actually doing behind the scenes.
This talk explores methodologies that allow to take a look “live” at kernel internal operations, from a network perspective, to I/O paths, CPU usage, memory allocations, etc., using in-kernel technologies, like eBPF and ftrace. Understanding such kernel internals can be really helpful to track down performance bottlenecks, debug system failures and it can be also a very effective way to approach to kernel development.
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLinaro
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Speakers: Marc Zyngier, Christoffer Dall
Date: September 30, 2016
★ Session Description ★
KVM/ARM has grown up. While the initial implementation of virtualization support for ARM processors in Linux was a quality upstream software project, there were initial design decisions simply not suitable for a long-term maintained hypervisor code base. For example, the way KVM/ARM utilized the hardware support for virtualization, was by running a ‘switching’ layer of code in EL2, purely written in assembly. This was a reasonable design decision in the initial implementation, as the switching layer only had to do one thing: Switch between a VM and the host. But as we began to optimize the implementation, add support for ARMv8.1 and VHE, and added features such as debugging support, we had to move to a more integrated approach, writing the switching logic in C code as well. As another example, the support for virtual interrupts, famously known as the VGIC, was designed with a focus on optimizing MMIO operations. As it turns out, MMIO operations is a less important and infrequent operation on the GIC, and the design had some serious negative consequences for supporting other state transitions for virtual interrupts and had negative performance implications. Therefore, we completely redesigned the VGIC support, and implemented the whole thing from scratch as a team effort, with a very promising result, upstream since Linux v4.7. In this talk we will cover the evolution of this software project and give an overview of the state of the project as it is today.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-500
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-500/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
"Session ID: BUD17-104
Session Name: Scripting Languages in IoT: Challenges and Approaches - BUD17-104
Speaker: Paul Sokolovsky,
Track: LITE
★ Session Summary ★
Scripting languages is hot emerging topic in IoT. They allow easy learnability and rapid prototyping and further benefits (like production use) as they evolve. This session compares approaches of MicroPython and JerryScript/Zephyr.js projects and gives status update on their Zephyr RTOS ports.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-104/
Presentation: https://www.slideshare.net/linaroorg/bud17104-scripting-languages-in-iot-challenges-and-approaches
Video: https://youtu.be/lIO8QL2SRuU
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: IoT, scripting languages, Zephyr, LITE, Paul Sokolovsky,
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
LAS16-106: GNU Toolchain Development LifecycleLinaro
LAS16-106: GNU Toolchain Development Lifecycle
Speakers: Ryan Arnold
Date: September 26, 2016
★ Session Description ★
This presentation will examine the lifecycle of toolchain development from inception of the micro-architecture, to development of the ISA, to delivery of OS enablement in FOSS projects, to adoption in Linux Distributions. It will examine the behaviors of successful silicon vendors as well as behaviors of vendors that struggle to get their platform fully enabled in the GNU/Linux OS.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-106
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-106/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
Speakers: Mathieu Poirier
Date: September 27, 2016
★ Session Description ★
The CoreSight framework available in the Linux kernel has recently been integrated with the standard Perf trace system, making HW assisted tracing on ARM systems accessible to developers working on a wide spectrum of products. This presentation will start by giving a brief overview of the CoreSight technology itself before presenting the current solution, from trace collection in kernel space to off system trace decoding. To help with the latter part the Open CoreSight Decoding Library (openCSD) is introduced. OpenCSD is an open source library assisting with the decoding of collected trace data. We will see how it is used with the existing perf tools to provide an end-to-end solution for CoreSight trace decoding. The presentation will conclude with trace acquisition and decoding scenarios, along with tips on how to interpret trace information rendered by the perf tools.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-210
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-210/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Mirko Damiani - An Embedded soft real time distributed system in Golinuxlab_conf
An embedded system usually involves low level languages like C and highly customized hardware. In this talk we will see a use case of a soft real time system which was developed taking a very different approach, written in Go. We will see what are the advantages of this choice, along with its limits.
LAS16-209: Finished and Upcoming Projects in LMGLinaro
LAS16-209: Finished and Upcoming Projects in LMG
Speakers: Yongqui Liu, Satish Patel, Bernhard Rosenkränzer
Date: September 27, 2016
★ Session Description ★
This survey of topics covers the engineering output of recent Android related projects in LMG and some future plans. This includes Memory Allocators, Filesystems, LCR news, Work on both gcc and clang based toolchains, Increased participation in upstream development as well as a quick overview of some upcoming topics. Kernel possible topics: Generic Build: where we are at.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-209
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-209/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
Sniffing through the ages
Capturing packets running on the wire to send them to a software doing analysis seems at first sight a simple tasks. But one has not to forget that with current network this can means capturing 30M packets per second. The objective of this talk is to show what methods and techniques have been implemented in Linux and how they have evolved over time.
The talk will cover AF_PACKET capture as well as PF_RING, dpdk and netmap. It will try to show how the various evolution of hardware and software have had an impact on the design of these technologies. Regarding software a special focus will be made on Suricata IDS which is implementing most of these capture methods.
Eric Leblond, Stamus Networks
LAS16-TR03: Upstreaming 201
Speakers: Shawn Guo, Daniel Thompson
Date: September 27, 2016
★ Session Description ★
This session is an advanced course on Linux kernel upstreaming fundamentals. The course covers how the arm-soc kernel tree is maintained and why that is important to ARM Linux kernel developers. The focus of the course is the explanation of the detailed mechanics of creating and posting patch series to upstream mailing lists for several common cases. Annotated session content is made up of previously upstreamed ARM support captured from emails to the kernel mailing lists. The target audience is both software engineers and engineering managers preparing to upstream software into the kernel. The topic requires a solid background in software configuration management terminology and the git SCM tool as well as a good technical understanding of the Linux kernel itself.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-tr03
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-tr03/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-100K1: Welcome Keynote
Speakers: George Grey
Date: September 26, 2016
★ Session Description ★
George Grey, CEO of Linaro will welcome attendees to the conference and give an update on the latest projects taking place at Linaro.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-100k1
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-100k1/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-201: ART JIT in Android N
Speakers: Xueliang Zhong
Date: September 27, 2016
★ Session Description ★
Android runtime (ART) has evolved from an AOT compiler (in Android L & M) to a hybrid mode runtime (in Android N) which combines fast interpreter, JIT compiler and profile guided AOT compiler. In this talk, we’ll take a look at all these important changes in Android N. For example, the design and implementation of JIT, hybrid mode, tooling support, etc. This talk is meant to help Linaro members and developers to have a deeper understanding of ART in Android N, and to help them face the challenges of the new behaviors of Android runtime.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-201
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-201/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-207: Bus scaling QoS
Speakers: Georgi Djakov
Date: September 27, 2016
★ Session Description ★
System has a lot of interconnect bus that have to be set to provide throughputs to devices of the system. We are working on adding missing pieces to let device set the performance requirements to the performance provider that are interconnect bus.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-207
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-207/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-101: Efficient kernel backporting
Speakers: Alex Shi
Date: September 26, 2016
★ Session Description ★
In computer/mobile product world, due to the stability, project timeline, etc considerations, latest upstream kernel isn’t their preference. The long term stable kernel is. But if you want to some of the latest features which only is in upstream kernel,you will have to backport them to old stable kernel. This presentation will share the kernel feature backport experience with audience, help them understand how to do backports quickly and effectively without detailed knowledge of the target feature, thus giving more flexibility and Improving productivity when making products. We will use some examples, to discuss how to get info from backport request, how to find necessary commits, how to get dependency, how to resolve conflicts, and finally how to test it.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-101
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-101/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.Linaro
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
Speakers: Nicolas Pitre
Date: September 29, 2016
★ Session Description ★
This is a discussion on various methods put forward to reduce the size of Linux kernel and user space binaries to make them suitable for small IoT applications, ranging from low hanging fruits to more daring approaches. Results from on-going work will also be presented.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-407
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-407/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUAnne Nicolas
Kernel development is often associated with rebooting crashed machines, debugging over serial consoles, and an unwiedly development cycle. Developers know that short development cycles are incredibly important for programmer productivity.
The QEMU machine emulator and virtualizer offers a way to test kernels inside virtual machines without risk of hanging the physical machine. It also makes kernel debugging easier than between physical machines. The kernel development with QEMU allows kernel code changes to be tested within seconds.
This talk covers methods of compiling, testing, and debugging kernels using QEMU. Common approaches include building a custom initramfs or sharing the host file system with a virtual machine. Advanced use cases like cross-architecture development and device driver bringup are also possible using QEMU.
This presentation is aimed at anyone wishing to shorten their kernel development cycle and overcome some of the hurdles of developing low-level software.
Stefan Hajnoczi, Red Hat
BUD17-405: Building a reference IoT product with Zephyr Linaro
"Session ID: BUD17-405
Session Name: Building a reference IoT product with Zephyr - BUD17-405
Speaker: Michael Scott, Ricardo Salveti
Track: LTD
★ Session Summary ★
An example of a reference IoT product can be thought of supporting several core technologies such as IPv4/IPv6, 6LoWPAN, Bluetooth LE and also several protocols such as MQTT, CoAP and LWM2M. Additional requirements such as having a complete secure boot and execution environment, besides being able to be securely updated with FOTA support are also critically important. This session will cover the development and challenges faced when producing a reference IoT product implementation with Zephyr, describing the state of the project, and the current gaps to productization.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-405/
Presentation: https://www.slideshare.net/linaroorg/bud17405-building-a-reference-iot-product-with-zephyr
Video: https://youtu.be/TOJkzIJ_3jg
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: LTD, Zephyr. IoT
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
This talk will guide you through the perils of building a resilient software stack for embedded system using buildroot as a base, stuff your software in between and adding swupdate as cherry on top! The talk will be composed by three main areas:
How to use buildroot as a base system for your stack
An introduction to swupdate and it’s fields of use
An example of using buildroot + swupdate to update your stack.
In the first we will talk about using buildroot as base for your software and how to add your software around. Buildroot make really easy to build a complete firmware image when using the standard configurations provided by the software but it could be cumbersome if you want to add your software in simple, easy and automated way. So we will show you how to write a simple makefile to add your software as an external component and how to automate the process of compiling everything to produce your binary artifacts.
The second part will discuss about swupdate and it’s field of use. Swupdate provides several ways of use: it can be used in a simple way, it could be integrated to do A/B updates, it could be used via network or locally using a medium. We will discuss about the possibility of approaches of system updates and how swupdate can satisfy each one of the use cases.
The third phase will show you a real approach adopted to solve a specific use cause with the hope it can be used a reference for auditor specific needs.
LAS16-200: SCMI - System Management and Control InterfaceLinaro
Title: SCMI - System Management and Control Interface
Abstract: In this session we present a new standard proposal for system control and management. The industry, both in high end mobile and enterprise, is trending towards the use of power and system controllers. In most cases the controllers have very similar communication mechanisms between application processors and controllers. In addition, these controllers generally provide very similar functions, e.g. DVFS, power domain management, sensor management. This standard proposal provides an extensible, OS agnostic, and virtualizable interface to access these functions.
Speaker(s):Charles Garcia-Tobin
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
If you heard something about Yocto, bitbake, openembedded, layers, recipes and you want to know more about that, this talk is for you. In this presentation you will be introduced to the Yocto Project build system starting from the basic concepts of metadata up to the use of the build system “tasks” in order to create your own embedded linux distribution. I will start speaking about the pros and cons of the Yocto Project compared to the other embedded linux build systems. Then we go deep into the framework components: poky, openembedded core and bitbake. The practical use of the recipes, packagegroups, images and machines files will be explained by examples. Finally an example on how to integrate an extra layer will be showed demonstrating the ease of use and the modularity of the build system.
Greybus is the name for a new application layer protocol on top of Unipro that controls the Ara Phone from Google. This protocol turns a phone into a modular device, allowing any part of the system to be hotplugged while the phone is running.
This talk will describe what this protocol is, why it was designed, and give the basics for how it works. It will discuss how this is implemented in the Linux kernel, and how it easily bridges existing hardware like USB, I2C, GPIO and others with little to no changes needed to existing kernel drivers.
Greg KH, Linux Foundation
U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues start with overview, features, efforts created by community and future plans.
The U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues and share development efforts created by the U-Boot community.
In this talk Jagan Teki(Maintainer for Allwinner SoC, SPI, SPI FLASH Subsystems) will introduce U-Boot from scratch with a brief overview of U-Boot history, U-Boot Proper, SPL, TPL, Build process and Startup sequence. He will talk about other preliminaries such as Image booting, Falcon Mode, Secure Boot and U-Boot features like device tree, device overlays, driver model and DFU, etc.
Once giving enough introduction, he will also talk about steps to port U-Boot to new hardware with a demo, along with U-Boot testing process. Finally, he will address and review ongoing development work, issues and future development regarding U-Boot.
LAS16-106: GNU Toolchain Development LifecycleLinaro
LAS16-106: GNU Toolchain Development Lifecycle
Speakers: Ryan Arnold
Date: September 26, 2016
★ Session Description ★
This presentation will examine the lifecycle of toolchain development from inception of the micro-architecture, to development of the ISA, to delivery of OS enablement in FOSS projects, to adoption in Linux Distributions. It will examine the behaviors of successful silicon vendors as well as behaviors of vendors that struggle to get their platform fully enabled in the GNU/Linux OS.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-106
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-106/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
Speakers: Mathieu Poirier
Date: September 27, 2016
★ Session Description ★
The CoreSight framework available in the Linux kernel has recently been integrated with the standard Perf trace system, making HW assisted tracing on ARM systems accessible to developers working on a wide spectrum of products. This presentation will start by giving a brief overview of the CoreSight technology itself before presenting the current solution, from trace collection in kernel space to off system trace decoding. To help with the latter part the Open CoreSight Decoding Library (openCSD) is introduced. OpenCSD is an open source library assisting with the decoding of collected trace data. We will see how it is used with the existing perf tools to provide an end-to-end solution for CoreSight trace decoding. The presentation will conclude with trace acquisition and decoding scenarios, along with tips on how to interpret trace information rendered by the perf tools.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-210
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-210/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Mirko Damiani - An Embedded soft real time distributed system in Golinuxlab_conf
An embedded system usually involves low level languages like C and highly customized hardware. In this talk we will see a use case of a soft real time system which was developed taking a very different approach, written in Go. We will see what are the advantages of this choice, along with its limits.
LAS16-209: Finished and Upcoming Projects in LMGLinaro
LAS16-209: Finished and Upcoming Projects in LMG
Speakers: Yongqui Liu, Satish Patel, Bernhard Rosenkränzer
Date: September 27, 2016
★ Session Description ★
This survey of topics covers the engineering output of recent Android related projects in LMG and some future plans. This includes Memory Allocators, Filesystems, LCR news, Work on both gcc and clang based toolchains, Increased participation in upstream development as well as a quick overview of some upcoming topics. Kernel possible topics: Generic Build: where we are at.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-209
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-209/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
Sniffing through the ages
Capturing packets running on the wire to send them to a software doing analysis seems at first sight a simple tasks. But one has not to forget that with current network this can means capturing 30M packets per second. The objective of this talk is to show what methods and techniques have been implemented in Linux and how they have evolved over time.
The talk will cover AF_PACKET capture as well as PF_RING, dpdk and netmap. It will try to show how the various evolution of hardware and software have had an impact on the design of these technologies. Regarding software a special focus will be made on Suricata IDS which is implementing most of these capture methods.
Eric Leblond, Stamus Networks
LAS16-TR03: Upstreaming 201
Speakers: Shawn Guo, Daniel Thompson
Date: September 27, 2016
★ Session Description ★
This session is an advanced course on Linux kernel upstreaming fundamentals. The course covers how the arm-soc kernel tree is maintained and why that is important to ARM Linux kernel developers. The focus of the course is the explanation of the detailed mechanics of creating and posting patch series to upstream mailing lists for several common cases. Annotated session content is made up of previously upstreamed ARM support captured from emails to the kernel mailing lists. The target audience is both software engineers and engineering managers preparing to upstream software into the kernel. The topic requires a solid background in software configuration management terminology and the git SCM tool as well as a good technical understanding of the Linux kernel itself.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-tr03
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-tr03/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-100K1: Welcome Keynote
Speakers: George Grey
Date: September 26, 2016
★ Session Description ★
George Grey, CEO of Linaro will welcome attendees to the conference and give an update on the latest projects taking place at Linaro.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-100k1
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-100k1/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-201: ART JIT in Android N
Speakers: Xueliang Zhong
Date: September 27, 2016
★ Session Description ★
Android runtime (ART) has evolved from an AOT compiler (in Android L & M) to a hybrid mode runtime (in Android N) which combines fast interpreter, JIT compiler and profile guided AOT compiler. In this talk, we’ll take a look at all these important changes in Android N. For example, the design and implementation of JIT, hybrid mode, tooling support, etc. This talk is meant to help Linaro members and developers to have a deeper understanding of ART in Android N, and to help them face the challenges of the new behaviors of Android runtime.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-201
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-201/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-207: Bus scaling QoS
Speakers: Georgi Djakov
Date: September 27, 2016
★ Session Description ★
System has a lot of interconnect bus that have to be set to provide throughputs to devices of the system. We are working on adding missing pieces to let device set the performance requirements to the performance provider that are interconnect bus.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-207
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-207/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-101: Efficient kernel backporting
Speakers: Alex Shi
Date: September 26, 2016
★ Session Description ★
In computer/mobile product world, due to the stability, project timeline, etc considerations, latest upstream kernel isn’t their preference. The long term stable kernel is. But if you want to some of the latest features which only is in upstream kernel,you will have to backport them to old stable kernel. This presentation will share the kernel feature backport experience with audience, help them understand how to do backports quickly and effectively without detailed knowledge of the target feature, thus giving more flexibility and Improving productivity when making products. We will use some examples, to discuss how to get info from backport request, how to find necessary commits, how to get dependency, how to resolve conflicts, and finally how to test it.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-101
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-101/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.Linaro
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
Speakers: Nicolas Pitre
Date: September 29, 2016
★ Session Description ★
This is a discussion on various methods put forward to reduce the size of Linux kernel and user space binaries to make them suitable for small IoT applications, ranging from low hanging fruits to more daring approaches. Results from on-going work will also be presented.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-407
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-407/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUAnne Nicolas
Kernel development is often associated with rebooting crashed machines, debugging over serial consoles, and an unwiedly development cycle. Developers know that short development cycles are incredibly important for programmer productivity.
The QEMU machine emulator and virtualizer offers a way to test kernels inside virtual machines without risk of hanging the physical machine. It also makes kernel debugging easier than between physical machines. The kernel development with QEMU allows kernel code changes to be tested within seconds.
This talk covers methods of compiling, testing, and debugging kernels using QEMU. Common approaches include building a custom initramfs or sharing the host file system with a virtual machine. Advanced use cases like cross-architecture development and device driver bringup are also possible using QEMU.
This presentation is aimed at anyone wishing to shorten their kernel development cycle and overcome some of the hurdles of developing low-level software.
Stefan Hajnoczi, Red Hat
BUD17-405: Building a reference IoT product with Zephyr Linaro
"Session ID: BUD17-405
Session Name: Building a reference IoT product with Zephyr - BUD17-405
Speaker: Michael Scott, Ricardo Salveti
Track: LTD
★ Session Summary ★
An example of a reference IoT product can be thought of supporting several core technologies such as IPv4/IPv6, 6LoWPAN, Bluetooth LE and also several protocols such as MQTT, CoAP and LWM2M. Additional requirements such as having a complete secure boot and execution environment, besides being able to be securely updated with FOTA support are also critically important. This session will cover the development and challenges faced when producing a reference IoT product implementation with Zephyr, describing the state of the project, and the current gaps to productization.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-405/
Presentation: https://www.slideshare.net/linaroorg/bud17405-building-a-reference-iot-product-with-zephyr
Video: https://youtu.be/TOJkzIJ_3jg
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: LTD, Zephyr. IoT
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
This talk will guide you through the perils of building a resilient software stack for embedded system using buildroot as a base, stuff your software in between and adding swupdate as cherry on top! The talk will be composed by three main areas:
How to use buildroot as a base system for your stack
An introduction to swupdate and it’s fields of use
An example of using buildroot + swupdate to update your stack.
In the first we will talk about using buildroot as base for your software and how to add your software around. Buildroot make really easy to build a complete firmware image when using the standard configurations provided by the software but it could be cumbersome if you want to add your software in simple, easy and automated way. So we will show you how to write a simple makefile to add your software as an external component and how to automate the process of compiling everything to produce your binary artifacts.
The second part will discuss about swupdate and it’s field of use. Swupdate provides several ways of use: it can be used in a simple way, it could be integrated to do A/B updates, it could be used via network or locally using a medium. We will discuss about the possibility of approaches of system updates and how swupdate can satisfy each one of the use cases.
The third phase will show you a real approach adopted to solve a specific use cause with the hope it can be used a reference for auditor specific needs.
LAS16-200: SCMI - System Management and Control InterfaceLinaro
Title: SCMI - System Management and Control Interface
Abstract: In this session we present a new standard proposal for system control and management. The industry, both in high end mobile and enterprise, is trending towards the use of power and system controllers. In most cases the controllers have very similar communication mechanisms between application processors and controllers. In addition, these controllers generally provide very similar functions, e.g. DVFS, power domain management, sensor management. This standard proposal provides an extensible, OS agnostic, and virtualizable interface to access these functions.
Speaker(s):Charles Garcia-Tobin
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
If you heard something about Yocto, bitbake, openembedded, layers, recipes and you want to know more about that, this talk is for you. In this presentation you will be introduced to the Yocto Project build system starting from the basic concepts of metadata up to the use of the build system “tasks” in order to create your own embedded linux distribution. I will start speaking about the pros and cons of the Yocto Project compared to the other embedded linux build systems. Then we go deep into the framework components: poky, openembedded core and bitbake. The practical use of the recipes, packagegroups, images and machines files will be explained by examples. Finally an example on how to integrate an extra layer will be showed demonstrating the ease of use and the modularity of the build system.
Greybus is the name for a new application layer protocol on top of Unipro that controls the Ara Phone from Google. This protocol turns a phone into a modular device, allowing any part of the system to be hotplugged while the phone is running.
This talk will describe what this protocol is, why it was designed, and give the basics for how it works. It will discuss how this is implemented in the Linux kernel, and how it easily bridges existing hardware like USB, I2C, GPIO and others with little to no changes needed to existing kernel drivers.
Greg KH, Linux Foundation
U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues start with overview, features, efforts created by community and future plans.
The U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues and share development efforts created by the U-Boot community.
In this talk Jagan Teki(Maintainer for Allwinner SoC, SPI, SPI FLASH Subsystems) will introduce U-Boot from scratch with a brief overview of U-Boot history, U-Boot Proper, SPL, TPL, Build process and Startup sequence. He will talk about other preliminaries such as Image booting, Falcon Mode, Secure Boot and U-Boot features like device tree, device overlays, driver model and DFU, etc.
Once giving enough introduction, he will also talk about steps to port U-Boot to new hardware with a demo, along with U-Boot testing process. Finally, he will address and review ongoing development work, issues and future development regarding U-Boot.
ScicomP 2015 presentation discussing best practices for debugging CUDA and OpenACC applications with a case study on our collaboration with LLNL to bring debugging to the OpenPOWER stack and OMPT.
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...EUDAT
Giuseppe will present the differences between high-performance and high-throughput applications. High-throughput computing (HTC) refers to computations where individual tasks do not need to interact while running. It differs from High-performance (HPC) where frequent and rapid exchanges of intermediate results is required to perform the computations. HPC codes are based on tightly coupled MPI, OpenMP, GPGPU, and hybrid programs and require low latency interconnected nodes. HTC makes use of unreliable components distributing the work out to every node and collecting results at the end of all parallel tasks.
Visit: https://www.eudat.eu/eudat-summer-school
(Embedded Linux Conference Europe 2014)
Linux uses many kind of embedded products. The products include not only consumer electronics but also control systems such as programmable logic controllers. There are many type of infrastructure systems and each system has different technical requirements. The requirements include not only real-time performance but also reliability-related functions. The infrastructure systems have to meet all the requirements. This presentation gives a summary of our study and development to adapt the Linux to infrastructure systems. Then we discuss the direction of future development. Please note, this presentation doesn't focus on a specific product.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2qoUklo.
Mark Price talks about techniques for making performance testing a first-class citizen in a Continuous Delivery pipeline. He covers a number of war stories experienced by the team building one of the world's most advanced trading exchanges. Filmed at qconlondon.com.
Mark Price is a Senior Performance Engineer at Improbable.io, working on optimizing and scaling reality-scale simulations. Previously, he worked as Lead Performance Engineer at LMAX Exchange, where he helped to optimize the platform to become one of the world's fastest FX exchanges.
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageMayaData Inc
Webinar Session - https://youtu.be/_5MfGMf8PG4
In this webinar, we share how the Container Attached Storage pattern makes performance tuning more tractable, by giving each workload its own storage system, thereby decreasing the variables needed to understand and tune performance.
We then introduce MayaStor, a breakthrough in the use of containers and Kubernetes as a data plane. MayaStor is the first containerized data engine available that delivers near the theoretical maximum performance of underlying systems. MayaStor performance scales with the underlying hardware and has been shown, for example, to deliver in excess of 10 million IOPS in a particular environment.
The engineering challenges of designing for low latency execution include tightly controlling the time it takes to detect the onset of latency excursion and a diagnosis of its most likely cause. In modern x-as-a-service (XaaS) forms of distributed applications, the points at which latency is experienced by a service consumer are separated by many layers of modular abstractions from the underlying system hardware. This separation makes it difficult to pinpoint the causes of latency pushouts and to apply corrective actions in a timely manner. The classic performance methodology to profile ‘cycles’ of work may be broadly successful in extracting higher levels of latency, but not very effective in determining causes of short-duration latency surges; and, to determine that, it is frequently necessary to:
• trace execution
• pinpoint when a significant latency stretch out occurs
• establish its correlation with a nearby precursor or a set of precursor events
Each of these steps can incur significant overheads; further, one has to be concerned that even modest overheads from tracing risk contributing to tail latencies. Not just the detection of the onset of a latency excursion, but the identification of why it occurs must be completed quickly so that if a corrective action is possible, it can be taken promptly. Similarly, if no recourse to curb the latency of a slice of computation is available at some point in time, then it is ideal that steps to minimize the impact of the exception are put into effect as early as possible
In our talk, we present an approach that complements the very low overhead software tracing provided by KUtrace. It uses eBPF to trigger a collection of additional data at very low overhead from the hardware performance monitoring unit (PMU) so that latency excursions within a span of execution can be examined in a timely manner. We will describe the use of PMU capabilities like precise events-based sampling (PEBS) and timed last branch records (Timed LBRs) in close proximity to events of interest to extract critical clues. We will further discuss planned future work to integrate in-band network telemetry (INT) into these tracing flows.
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Amazon Web Services
Your AMI is one of the core foundations for running applications and services effectively on Amazon EC2. In this session, you'll learn how to optimize your AMI, including how you can measure and diagnose system performance and tune parameters for improved CPU and network performance. We'll cover application-specific examples from Netflix on how optimized AMIs can lead to improved performance.
linux monitoring and performance tunning iman darabi
howto monitor linux server? what metrics are important when monitor server? what is related between metrics and monitoring tools? what are basic linux server optimization ? howto optimize ?
Similar to Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux (20)
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
A whirlwind tour of what has been happening in the kernel development community and what can be expected in the near future.
The Linux kernel is at the core of any Linux system; the performance and capabilities of the kernel will, in the end, place an upper bound on what the system as a whole can do. This talk will review recent events in the kernel development community, discuss the current state of the kernel and the challenges it faces, and look forward to how the kernel may address those challenges. Attendees of any technical ability should gain a better understanding of how the kernel got to its current state and what can be expected in the near future.
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
The Yocto Project is an open source collaboration project that provides models, tools and methods to create custom Linux-based systems for embedded products that are independent from the adopted hardware architecture. The project was created in 2010 as a collaboration among several hardware manufacturers, open-source operating system providers and electronics companies to bring some order into the chaos of Linux Embedded development. Over the years, Yocto Project has established itself as the de-facto standard for the generation of embedded Linux systems, surpassing alternative products thanks to its characteristics.
The free tools that Yocto provides are powerful and easily generated (including emulation environments, debuggers, an application generator toolkit, etc.). The complete abstraction from the hardware of the development environment allows to optimize the investments made during the prototyping phase. The Yocto Project encourages the adoption of this technology by the open source community allowing users to focus on the characteristics and development of their product.
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketlinuxlab_conf
Android developers are facing a common problem: how to test our applications on many devices without sacrificing too much time or money? Could we use remotely all the devices inside the company with the continuous integration system? Maybe thanks to a low cost device farm that fits into a pocket?
Android developers are facing a common problem: how to test our applications on many devices without sacrificing too much time or money?
How to build and test automatically our applications for each commit? How can we find those devices inside the company, whatever its size may be? Could there be a directory somewhere that lists those available devices? Could we use a device remotely and share it with other developers as if it were in the cloud? What if you could answer all these questions with the help of a low cost device farm that fits into a pocket? A pocket full of clouds…
Poddingue, our proposal, aims to tackle this problem thanks to Docker, HypriotOS, Armbian, Gitlab CI and OpenSTF. It’s an internal solution made of OSS readily available, but it has not yet been publicly announced as a whole.
This is a feedback about an idea on its way to production, a long journey full of different feelings : horror, happiness, suspense, boredom…
Why should I come? This presentation won’t be too technical ; it is opened to anybody who has an interest into Android, exotic hardware or continuous integration, as long as you can stand a bad sense of humour. At the end of the talk, you should know how to build your own cloudy pocket farm of Android devices and how to use it to test your applications within your ci pipeline.
And as I am cheap, you will also be surprised at how little money you need to build it.
Jacopo Mondi - Complex cameras are complexlinuxlab_conf
The ‘complex camera’ user-space library is a fairly new and hot topic in the Linux kernel video community. The issue is debated and targets a real technical debt of Linux systems.
The Linux kernel video input subsystem and its APIs changed greatly in the last years to keep up with the increasing complexity and processing power embedded in modern SoCs. Namely, the biggest game-changing feature introduced already 5 years ago is the media controller subsystem and its pad oriented APIs, that allows composing pipelines of processing blocks to model the acquisition and re-processing of video and images.
While most of the media subsystem drivers in mainline Linux have been ported to fully support media-controller, the real missing component is now user space support to automate setting up and controlling the image processing pipelines.
The Video4Linux community is now tackling the issue by implementing support for “complex camera” systems by providing a user space library that aims to support the most recent use cases represented by mobile consumer devices and high end laptops.
This talks provides an overview of the in-kernel APIs of modern media-controller capable video device drivers, their userspace APIs and the challenges the currently in-development library has to face.
It also aims to provide to both driver and application developers an overview of the most modern implementation of the Linux video input stack architecture, that will likely be found in most system in next years.
Alessio Lama - Development and testing of a safety network protocollinuxlab_conf
The progress in the industrial automation, automotive, biomedical and avionic sectors requires the use of safety network protocols that in some cases have to satisfy real time constrains. In this talk we will discuss about facing the major issues of the network, which tools to use to test and analyze the protocol and we will understand the usefulness of integrating PTP and PRP modules in our communication.
Dario Faggioli - Virtualization in the age of speculative execution HW bugslinuxlab_conf
Can you possibly speculate how badly the spectre of the hardware bugs, recently discovered in microprocessors, haunts virtualized systems (like Xen & KVM)? Are things fine, or is everything going to meltdown ? Come to the talk, and let’s discuss this together…
At the beginning of 2018, Meltdown and Spectre taught us that speculative execution can, from deep down inside our super fast processors, pose some security concerns. During the following months, more Spectre variants, L1TF, etc, taught us how really serious such concerns needed to be.
One of the interesting things about this class of security issues, is that they do not come, like most bugs, from someone’s “mistake”. In fact, they represent the failure of fundamental assumptions that CPU designers have been relying on for years.
This talk will give a quick overview of speculative execution, and of how the attacks work, at a high level. Then, it will go through how these vulnerabilities could be exploited in virtualized environments. It will also try to explain what the main mitigations are, and how they work, for the two main Open Source virtualization solutions, Xen and KVM.
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...linuxlab_conf
To manage remotely your IoT device without knowing the IP address of the device we used MQTT and a set of custom go libraries. With this architecture Arduino Create Agent allows users to deploy container remotely. A journey on Docker client, APT command line, sockets, systemd and much more on Arm and Intel Linux devices.
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
The exploding popularity of Embedded/IoT computing facilitate this security problems using low or non-existent security policies and exploits countermeasures. So why not explore some security measures that are widely available in the Linux world? We will focus on memory corruption techniques.
The Linux kernel was always focused on security features and giving bad times to the exploiters. This talk will introduce some common exploits and techniques, showing the mitigations employed by the kernel. By focusing on the major threats that affects modern Linux boxes, we will see which are the main features that can give problems to the system administator and how a preliminary penetration test can be done, ensuring that the system is in a sane state. The talk will also focus on problematics of embedded/IoT Unix systems, showing how some recent attacks gained control over a big network of devices and how a simple embedded system can be analyzed, hunting for bugs. Talk outline: Penetration testing, Linux, netfilter/bpf, memory corruption, ASLR, Spectre/Meltdown.
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
Buildroot and Yocto, the two leading embedded Linux buildsystems, have largely overlapping goals but vastly different implementations.
Perhaps you’re familiar with either, and wonder how your daily job would change if you used the other.
Luca will share insights he gained while managing projects with both tools, spending a lot of time in learning how to achieve the same goals in a different way.
He will give a sort of “translation table” to ease the transition
between the two, covering: bootstrapping a project, what happens under the hood, invoking the build, customizing the rootfs and tweaking recipes.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
2. About me
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 2 / 22
■ 2016-present: Associate Professor at the Real-Time Systems
Laboratory (RETIS) of Scuola Superiore Sant’Anna: teaching
Component-Based Software Design, Cloud Computing, Big-Data, . . .
■ 2014-2016: Software Development Engineer at AWS, improving
the real-time performance and scalability of DynamoDB
■ 2012-2014: Researcher at Alcatel-Lucent Bell Labs, investigating
on security and real-time performance of cloud infrastructures with
focus on IMS and NFV
■ 2005-2012: Researcher at the RETIS, investigating on adaptive
real-time scheduling for multimedia applications on Linux
■ 2001-2004: PhD in Computer Security & Smart-Card Based
Authentication, RETIS
3. About the RETIS
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 3 / 22
■ Belongs to the Institute of Communications, Information and Perception
Technologies of Scuola Superiore Sant’Anna in Pisa
■ Research specialties
◆ predictable execution of software through
■ mechanisms at operating system and kernel level
■ design methodologies and tools
■ performance and timing analysis
◆ provide real-time support for emerging computing platforms
■ multi-core and heterogeneous platforms (big.LITTLE, GPGPU, FPGA)
■ distributed infrastructures for cloud & big-data computing and NFV
◆ make real-time systems resource- and energy- efficient
◆ hard real-time use-cases: automotive, industrial automation, railroads
◆ soft real-time use-cases: multimedia, health-care, telecommunications
4. Introduction
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 4 / 22
Common multimedia processing case: audio playback and
video streaming
■ Works without particular precautions
■ No interactivity nor low-latency requirements
■ 100s of ms, or even seconds of data can be pre-buffered
and pre-processed
■ run-time platform (user-space + kernel) needs only
ensure presenting pre-processed A/V frames timely to
the underlying hardware
5. Introduction
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 4 / 22
Common multimedia processing case: audio playback and
video streaming
■ Works without particular precautions
■ No interactivity nor low-latency requirements
■ 100s of ms, or even seconds of data can be pre-buffered
and pre-processed
■ run-time platform (user-space + kernel) needs only
ensure presenting pre-processed A/V frames timely to
the underlying hardware
What about interactivity ?
6. Problem
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 5 / 22
Interactive multimedia processing
■ low-latency requirement from when a user interaction
happens, to when it is reflected in the output A/V stream
7. Problem
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 5 / 22
Interactive multimedia processing
■ low-latency requirement from when a user interaction
happens, to when it is reflected in the output A/V stream
Examples
■ video editing: change filter(s) and/or parameters in a
real-time video processing pipeline
■ on-line interactive services: eg, office automation,
etc.
■ gaming, VR, AR: user interacts with environment
and/or other users (eg, multi-player shooting)
■ software-based sound synthesis: user presses one or
more instrument keys / controllers
8. Problem
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 6 / 22
Interactive multimedia processing: how can we achieve low
latency ?
■ Digital Audio Workstation (DAW)
◆ DSPs do the real-time work
◆ the general-purpose OS and software just takes care
of configuring its pipeline and parameters
9. Problem
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 6 / 22
Interactive multimedia processing: how can we achieve low
latency ?
■ Digital Audio Workstation (DAW)
◆ DSPs do the real-time work
◆ the general-purpose OS and software just takes care
of configuring its pipeline and parameters
■ EXPENSIVE ! → Software-based solutions
10. Problem
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 6 / 22
Interactive multimedia processing: how can we achieve low
latency ?
■ Digital Audio Workstation (DAW)
◆ DSPs do the real-time work
◆ the general-purpose OS and software just takes care
of configuring its pipeline and parameters
■ EXPENSIVE ! → Software-based solutions
■ “1-system 1-function” paradigm
◆ device dedicated to a single application
◆ nothing else runs with real-time requirements
◆ we can use priorities to minimize interferences
11. Real-time audio processing
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 7 / 22
Commonly found guidelines for low-latency, skip-free
interactive audio processing
eg, from http://jackaudio.org/faq/linux_rt_config.html
■ create group of users who can gain RT priority
groupadd audio
cat /etc/security/limits.d/99-realtime.conf
audio - rtprio 99
audio - memlock unlimited
■ add unprivileged user to the new group
usermod -a -G audio yourUserID
■ install a “real-time / low-latency” kernel
12. Real-time audio processing
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 7 / 22
Commonly found guidelines for low-latency, skip-free
interactive audio processing
eg, from http://jackaudio.org/faq/linux_rt_config.html
■ create group of users who can gain RT priority
groupadd audio
cat /etc/security/limits.d/99-realtime.conf
audio - rtprio 99
audio - memlock unlimited
■ add unprivileged user to the new group
usermod -a -G audio yourUserID
■ install a “real-time / low-latency” kernel
So, problem solved ?
13. What about energy?
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 8 / 22
Plenty of energy saving features in the hardware
■ Dynamic Voltage and Frequency Scaling (DVFS)
■ Performance states (P-states),
Operating Performance Points (OPP)
■ Core idle states (C-states)
■ Turbo Boosting (hmmm....): spike-up CPU frequency
when/if possible
14. What about energy?
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 8 / 22
Plenty of energy saving features in the hardware
■ Dynamic Voltage and Frequency Scaling (DVFS)
■ Performance states (P-states),
Operating Performance Points (OPP)
■ Core idle states (C-states)
■ Turbo Boosting (hmmm....): spike-up CPU frequency
when/if possible
Useful in a number of cases (both battery-operated and not)
■ laptops, tablets, smartphones
■ desktop PCs, servers
15. What about energy?
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 8 / 22
Plenty of energy saving features in the hardware
■ Dynamic Voltage and Frequency Scaling (DVFS)
■ Performance states (P-states),
Operating Performance Points (OPP)
■ Core idle states (C-states)
■ Turbo Boosting (hmmm....): spike-up CPU frequency
when/if possible
Useful in a number of cases (both battery-operated and not)
■ laptops, tablets, smartphones
■ desktop PCs, servers
All bad for performance stability!
16. Platform stability
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 9 / 22
Energy saving features in the hardware adverseley impact
performance stability and software predictability
■ DVFS → CPUs run at different frequencies over time
◆ frequency islands: groups of CPUs are constrained to
the same frequency
■ P-states → even less control on what frequency CPU(s)
are running at
◆ frequency control in hardware, high-level tunable
exposed to software (minPct, maxPct)
■ C-states → time to enter and exit idle state is variable
◆ going to a deep-idle state is worth only if staying
there for a minimum residency time
18. Making the platform stable
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 11 / 22
How users typically make the computing platform (more)
stable/predictable
■ turn-off Turbo Boosting
■ disable DVFS (leverage it to fix frequency), eg:
◆ performance governor or
◆ userspace governor if/when available
■ fix performance % with P-state driver (minPct=maxPct)
■ inhibit deep-idle states
◆ echo 1 > /sys/devices/system/cpu/cpu<n>/cpuidle/state<s>/disable
◆ echo 1 > /sys/devices/system/cpu/cpu0/power/pm qos resume latency us
19. Making the platform stable
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 11 / 22
How users typically make the computing platform (more)
stable/predictable
■ turn-off Turbo Boosting
■ disable DVFS (leverage it to fix frequency), eg:
◆ performance governor or
◆ userspace governor if/when available
■ fix performance % with P-state driver (minPct=maxPct)
■ inhibit deep-idle states
◆ echo 1 > /sys/devices/system/cpu/cpu<n>/cpuidle/state<s>/disable
◆ echo 1 > /sys/devices/system/cpu/cpu0/power/pm qos resume latency us
■ or, just run:
◆ yes > /dev/null & [times # of CPUs]
20. Making the platform stable
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 11 / 22
How users typically make the computing platform (more)
stable/predictable
■ turn-off Turbo Boosting
■ disable DVFS (leverage it to fix frequency), eg:
◆ performance governor or
◆ userspace governor if/when available
■ fix performance % with P-state driver (minPct=maxPct)
■ inhibit deep-idle states
◆ echo 1 > /sys/devices/system/cpu/cpu<n>/cpuidle/state<s>/disable
◆ echo 1 > /sys/devices/system/cpu/cpu0/power/pm qos resume latency us
■ or, just run:
◆ yes > /dev/null & [times # of CPUs]
■ Bad for energy consumption!
21. Why audio skips
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 12 / 22
∎ audio burst in playback (top)
∎ fill-level of audio ring buffer (middle)
∎ RT app thread (bottom)
∎ big ring buffer → high latency!
∎ empty ring buffer → audible glitch!
∎ small ring buffer periodically refilled
→ low latency, glitch-free playback!
22. Android audio architecture
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 13 / 22
Android audio applications
∎ android.media APIs
◇ playing/recording
audio files, Internet
streaming
◇ use of large buffers (no
low-latency use-cases)
◇ regular mixer thread
Low-latency audio applications
∎ native APIs
(OpenSL ES, AAudio)
◇ low-latency audio pro-
cessing
◇ rely on FastMixer and
ALSA
∎ critically low-latency
◇ exclusive mode in
AAudio / ALSA
23. Android audio architecture
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 14 / 22
Power management in Android
■ schedutil selects the minimum operating performance point (OPP)
able to satisfy demand
■ based on CPU utilization statistics
◆ Per-Entity Load-Tracking (PELT)
■ exponentially weighted task utilization
■ slow to detect workload changes (ramp-up, cool-down)
eg, it may take 50–100 ms to detect a 90% increase of CPU % demand
◆ Window-Assisted Load-Tracking (WALT)
■ max{last window util., avg util. over past N windows}
eg, over 3 past 10 ms windows, we have a 10 ms spike detection latency, and a 30 ms
cool-down one
■ it forgets quickly a task demand when the task is off the rq
■ WALT more reactive than PELT, but ...
24. Android audio architecture
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 14 / 22
Power management in Android
■ schedutil selects the minimum operating performance point (OPP)
able to satisfy demand
■ based on CPU utilization statistics
◆ Per-Entity Load-Tracking (PELT)
■ exponentially weighted task utilization
■ slow to detect workload changes (ramp-up, cool-down)
eg, it may take 50–100 ms to detect a 90% increase of CPU % demand
◆ Window-Assisted Load-Tracking (WALT)
■ max{last window util., avg util. over past N windows}
eg, over 3 past 10 ms windows, we have a 10 ms spike detection latency, and a 30 ms
cool-down one
■ it forgets quickly a task demand when the task is off the rq
■ WALT more reactive than PELT, but ... not enough for very
dynamic workloads
■ can we improve on that?
25. SCHED DEADLINE
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 15 / 22
SCHED DEADLINE from RETIS+Evidence
(ACTORS EU project)
■ mainline since v3.14 (2013)
■ reservation-based scheduling
■ a task is reserved a given runtime within a deadline
every period
struct sched attr attr = {
.size = sizeof(struct sched attr),
.sched policy = SCHED DEADLINE,
.sched flags = 0, // RECLAIM | RESET ON FORK
.sched runtime = runtime us * 1000,
.sched deadline = deadline us * 1000,
.sched period = period us * 1000
};
if (sched setattr(0, &attr, 0) < 0) {
perror("setattr() failed");
exit(-1);
}
26. SCHED DEADLINE
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 16 / 22
How is SCHED DEADLINE w.r.t. POSIX RT?
■ any SCHED DEADLINE task runs before any
POSIX RT or CFS task
◆ based on resource reservations (next slide)
◆ throttling safeguard to avoid locking the CPU
(can be disabled if needed)
■ any POSIX RT (FIFO/RR) task runs before any
CFS task
◆ based on priorities
◆ throttling safeguard to avoid locking the CPU
(can be disabled if needed)
■ Completely Fair Scheduler (CFS) tasks run when
no SCHED DEADLINE nor RT tasks can
◆ based on weights (weighted fair scheduler)
27. SCHED DEADLINE
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 17 / 22
Main SCHED DEADLINE properties
■ based on EDF (optimum on uni-processors) and (Hard)
Costant Bandwidth Server (CBS)
■ temporal isolation: a task inability to respect its
runtime doesn’t affect others
■ on multi-processors: anything from G-EDF (tardiness
bound) to P-EDF
When trying to exceed the runtime
■ task gets throttled (original)
■ opportunistically get extra runtime (GRUB), if
RECLAIM used
28. SCHED DEADLINE and schedutil
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 18 / 22
schedutil decided OPP depends on overall system
utilization, in which we have:
■ SCHED DEADLINE tasks’ utilization: runtime
period
dynamic workload demand changes via sched setattr():
■ readily accounted for, by schedutil
29. SCHED DEADLINE and schedutil
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 18 / 22
schedutil decided OPP depends on overall system
utilization, in which we have:
■ SCHED DEADLINE tasks’ utilization: runtime
period
dynamic workload demand changes via sched setattr():
■ readily accounted for, by schedutil
Does it work?
30. SCHED DEADLINE and schedutil
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 18 / 22
schedutil decided OPP depends on overall system
utilization, in which we have:
■ SCHED DEADLINE tasks’ utilization: runtime
period
dynamic workload demand changes via sched setattr():
■ readily accounted for, by schedutil
Does it work? Results on a HiKey 960 board:
■ energy-efficient set-up: glitch-free playback at 2.67ms latency, vs
26.67ms of mainline Android using SCHED FIFO and WALT, at the
cost of +6.25% power consumption
■ low-latency set-up: at 2.67ms latency, saved 40% energy wrt
mainline Android using SCHED FIFO and WALT
31. Heterogeneous Architectures
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 19 / 22
ARM big.LITTLE (and DynamIQ) architectures
■ tasks can migrate among big and LITTLE cores (same
ISA)
■ big cores: high-performance workloads
■ LITTLE cores: energy-efficient workloads
ARM Energy Aware Scheduling (EAS)
■ give kernel awareness of the CPU capacity associated
with big and LITTLE cores
■ give kernel clues as to how capacity of big and LITTLE
cores scales with CPU frequency
■ provide CFS with more informed task placement and
migration decisions
32. Capacity enhancement patches
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 20 / 22
SCHED DEADLINE improvements to account for CPU
capacity
■ runtime is specified in terms of the fastest CPU at the
fastest frequency
◆ it gets automatically rescaled using the CPU capacity
figures
■ if there’s a choice, prefer LITTLE cores before going to
big ones
■ proper consideration of CPU capacity in schedutil
33. Related publications
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 21 / 22
∎ A. Balsini, Towards Hard and Soft Real-time Operating Systems for Multicore Heterogeneous
Architectures, PhD dissertation, 2018
∎ A. Balsini et al., Modeling and simulation of power consumption and execution times for
real-time tasks on embedded heterogeneous architectures, EWILI 2018
∎ T. Cucinotta et al., Improving Responsiveness of Time-Sensitive Applications by Exploiting
Dynamic Task Dependencies, Wiley SPE 2018
∎ C. Scordino et al., Energy-aware real-time scheduling in the linux kernel, ACM SAC 2018
∎ D. B. de Oliveira et al., Nested Locks in the Lock Implementation: The Real-Time
Read-Write Semaphores on Linux, RTSOPS 2018
∎ M. Marinoni et al., Allocation and control of computing resources for real-time Virtual
Network Functions, SOFTNETWORKING 2018
∎ T. Cucinotta et al., Adaptive Real-Time Scheduling for Legacy Multimedia Applications, ACM
TECS 2012
∎ J. Lelli et al., An Experimental Comparison of Different Real-Time Schedulers on Multicore
Systems, Elsevier JSS 2012
∎ T. Cucinotta et al., Virtualised e-Learning on the IRMOS Real-time Cloud, Springer SOCA’12
∎ T. Cucinotta et al., A robust mechanism for adaptive scheduling of multimedia applications,
ACM TECS 2011
∎ T. Cucinotta et al., Low-Latency Audio on Linux by Means of Real-Time Scheduling, LAC’11
∎ T. Cucinotta et al., Virtualised e-Learning with Real-Time Guarantees on the IRMOS
Platform, IEEE SOCA 2010
∎ T. Cucinotta and L. Palopoli, QoS Control for Pipelines of Tasks Using Multiple Resources,
IEEE TOC 2010
∎ L. Palopoli et al, AQuoSA - Adaptive Quality of Service Architecture, Wiley SPE 2008
∎ L. Abeni et al, QoS Management through adaptive reservations, Springer RTSJ 2005
34. Q&A
LinuxLab 2018 T. Cucinotta – Real-Time Systems Laboratory (RETIS) – 22 / 22
Thanks for listening!
Questions ?
http://retis.santannapisa.it/˜tommaso
tommaso.cucinotta@santannapisa.it