One Size Does Not Fit All

One Size Does Not Fit All

Virtualizaton: One Size Does Not Fit All Nedeljko Miljevic Product Manager, Automotive Solutions MontaVista Software Agenda • Linux and Automotive • Challenges • Solution: Virtualization • Linux Containers • Best Fit? © 2010 MontaVista Software - Confidential 2 Linux and Automotive Linux in Automotive • A number of ECUs are deployed in a car • Traditionally running RTOSes • Linux has gained traction in the automotive industry • Transforming the OS landscape • SoCs offer increasing performance • Modern multicore SoCs offer a lot of power • More functionality can be implemented on a single SoC • With growing computing power the demands are also growing • Cars becoming more „intelligent“ • Consolidating functions • On a multicore system © 2012 MontaVista Software 4 Linux and Automotive (cont.) • Linux deployment • Instrument Clusters • Telematics • IVI Systems • Driven by • Availability of Linux on SoCs from silicone vendors • Drivers for HW usually available from Day 1 • Increased demand for connectivity • Wireless connectivity (to cloud) • Follows increasing bandwidth and lowering prices • Consumer devices (local) • Innovation rate in OSS • Abundance of SW projects © 2012 MontaVista Software 5 Challenges: A Linux Perspective Challenge 1: Solving Different Lifecycle Cadences Example: Android Co-Existence Consumer - OEM driven Cadence cadence T1/OEM ~monthly Custom Apps Android Apps GENIVI Google Compliant Cadence - Cadence of Android ~6-9 months ~6-12 months Stack MV Linux Kernel - 1-3 year cadence - Multiple hardware HW - SoC - Low, medium and high end © 2012 MontaVista Software Challenge 2: Connected Car – Downloaded Apps Trusted Services Cloud Untrusted Services Networking: Firewall Trusted Applications Untrusted Applications Automotive Stack Sandbox Access Control Linux Kernel © 2012 MontaVista Software Challenge 3: Interoperability „Traditional“ Model Instrument Infotainment Cluster MCU MCU Bus ... MCU MCU MCU © 2012 MontaVista Software Challenge 3: Interoperability (cont.) Multicore Model Muticore System Instrument MCU Cluster SW Infotainment „Bus“ Bus Control Functions MCU © 2012 MontaVista Software Solution: Virtualization Demands on Virtualization in Automotive • Depend on Use Cases • Use Cases: • Automotive Domain shares the resources with guest domain (e.g. Driver seat) • Automotive and guest domains run each on dedicated resources (e.g. Passenger seats vs driver seat) • Tecnological Demands: • Isolation and Security • Different domains should not affect each others‘ functioning • Interoperability • Domains need to communicate and interact with each other © 2012 MontaVista Software 12 Use Case: Shared HW HW Audio Automotive GENIVI Graphics Stack Input Arbitration Network Android LSM Access Control Linux Kernel With Android Patches © 2012 MontaVista Software 13 Use Case: Dedicated HW HW Audio Graphics Automotive GENIVI Input Stack • Less Issues Network Android HW LSM Audio Linux Kernel Graphics Input © 2012 MontaVista Software 14 Resource Control • Audio Management • Priorities, handling of interrupt sources • Graphics Management • What, when, where to display • Inputs • Input distribution and focus • Networking • Outside world • CE Connectivity • IPC • Interoperability (when desired) © 2012 MontaVista Software 15 Tradeoffs Flexibility (different Oses) Full Virtualization Penalty Performance Paravirtualization Interconnectivity OS Level Virtualization Isolation © 2012 MontaVista Software 16 Full Virtualization • Host OS runs unmodified instances of guest OS(es) • Maximal Domain Isolation • Heavyweight, needs to emulate the HW visible by guest OS completely • Access to real HW resources controlled by the hosting OS • Linux/OSS world: KVM, proprietary implementations • Intercommunication usually only on networking level • Specific Automotive Demands: • Audio – needs an audio management implementation in both domains, hosting and guest • Graphics, Inputs, networking handled automagically • CE Connectivity may need more thorough planning • IPC: mainly using networking © 2012 MontaVista Software 17 Paravirtualization • Thin HW abstraction layer running various OSes (hypervisor) • Good Domain Isolation • Guest OSes need to be patched • Repetitive work when changing the OS version • May not be supported on all OSes • Lightweight • Runs a separate instance for every guest kernel in the system • Specific Automotive Demands: • Audio Management, Graphics, Inputs, Networking – hypervisor may need to control some of the functionality, depends on use case • IPC – hypervisor specific means © 2012 MontaVista Software 18 OS Level Virtualization • Multiple OS instances running on same kernel • Domain isolation not so good (shared kernel) • But tunable! • Single kernel • Need to maintain just one kernel • Reduced Memory Footprint compared to other solutions • Multiple userlands or applications • Very little performance impact • Use standard kernel features (no patching) • Specific Automotive Demands: • Audio Management, Graphics, Inputs, Networking, IPC – handled by the same kernel © 2012 MontaVista Software 19 Linux Containers What‘s different? One Tux to run them all © 2012 MontaVista Software 21 What are Containers? • Lightweight, OS level virtualization • Strictly speaking, not really virtualization • Means of isolating process groups from each other • Standard Linux kernel functionality • cgroups • namespaces • Configurable access to system resources • Devices, CPU, memory usage specified at start time • Configuration is persistent • Can be a single application or a complete userland • ANY userland that runs on top of the same kernel • „Guest“ root FS is a part of the host root FS © 2012 MontaVista Software 22 lxc • OSS project • http://lxc.sourceforge.net • Project in active development • Some cool features not implemented yet • Checkpoint / resume • Comes with a set of command line utilities • lxc-create, lxc-destroy • lxc-start/lxc-stop • lxc-freeze/lxc-unfreeze • lxc-console, lxc-attach • ...... © 2012 MontaVista Software 23 Containers and system resources • Through cgroups / cpusets • Resource management • CPU time • CPU affinity Can be exclusive • Memory usage • Through namespaces • Resource isolation • File system • Networking • IPC • Through configuration • Resource Isolation • Devices and access (r/w) • Mount points © 2012 MontaVista Software 24 Isolation Host system IPC Container 1 Container n Root FS /... = / /... = / ...... /dev /dev ≤ /dev /dev ≤ /dev PID = xy PID 1 IPC PID 1 IPC Linux kernel © 2012 MontaVista Software 25 File System • Container‘s / is in the hosts‘s directory tree • Individual files or directories can be shared between containers and/or with host (e.g. /etc/hosts, /bin, ...) • All specified in configuration files • Some interesting consequences on IPC mechanisms • Named pipes, sockets will work © 2012 MontaVista Software 26 Single Kernel • All kernel services available to host and container • Can be restricted through MAC • So ... • Anything that can be mmap‘ed can be used to communicate data between containers and/or host ... (zero-copy) Host system Container 1 ... Container n Host app /dev/...... © 2012 MontaVista Software 27 Distorted Perception of reality? • Using mmap‘ed buffers? • E.g. For video buffer? • What if .... • There is a mmap capable device with an allocated buffer and mmap() implementation • Seen as /dev/fb0 on guest platform? • Seen as /dev/mydriver on host platofrm? • Complicated? • It‘s YOUR call - as much as YOU make it! • Moral: • Finding a right tradeoff between isolation and performance is not something that the outside factors can decide for you. • Solutions can be combined too! © 2012 MontaVista Software 28 Containers – special case • A special case of container can ... • be bound to a single core • be exempted from scheduler • have all but a small number of interrupts vectored off its core (if/when needed) • Result: • Performance close to „bare metal“ – „container on steroids“ (BME) • > 99 % of CPU time dedicated to the foreground task • ~16 times the performance of the „normal“ Linux system on same HW • All Linux kernel services still available • Can communicate with host or other containers as any „ordinary“ container • Standard Linux programming !! © 2010 MontaVista Software - Confidential 29 Best fit? The answer is … • Depends on what you want to achieve • Want to process CAN? • Use a dedicated MCU, some form of serial connection to the host system • Use one of cores on a multicore chip? • Host a non-Linux based system? • (para)virtualize • Or process CAN in BME • Host a Linux userland? (e.g. Android?) • Sandbox a single application? • Containers are a natural choice © 2010 MontaVista Software - Confidential 31 Thank you! .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us