Embedded Linux Exercises Version - 2019.10

Total Page:16

File Type:pdf, Size:1020Kb

Embedded Linux Exercises Version - 2019.10 Embedded Linux Exercises Version - 2019.10 Hands-On Exercises for Embedded Linux v. 2019.10 WARNING: The order of the exercises does not always follow the same order of the explanations in the slides. When carrying out the exercises, carefully follow the exercise requirements. Do NOT blindly type the commands or code as found in the slides. Read every exercise in its entirety before carrying out the instructions. © OPERSYS INC. 1/10 Embedded Linux Exercises Version - 2019.10 These exercises are made available to you under a Creative Commons hare- "li#e 3.0 license. The full terms of this license are here: https://creativecommons.org/licenses/by!sa/3.0/ "ttribution requirements and misc.: • This page must remain as!is in this specific location (page #2,, (almost) everything else you are free to change. • -ou are forbidden from removing our name or logo. • .se of figures in other documents must feature the below /Originals at” .RL immediately under that figure and the below copyright notice where appropriate. • -ou are free to fill in the space in the below “Delivered and/or customi3ed by” section as you see fit. )C, Copyright 2003!+%45, Opersys inc. These exercises created by: Karim Yaghmour Originals at: www.opersys.com/training/ Delivered and/or customized by& © OPERSYS INC. 2/10 Embedded Linux Exercises Version - 2019.10 Software components versions Hard"are: BeagleBone White 8 has serial integrated into . 7 $%ass &rive: 2ocation to be provided in class 'i%es: Prebuilt SD card image& el-image-bb!454%%:.img.xz Wor#space& bbone-white!$.%.%!454%4;.tar.b3+ Linux (erne%: <ersion& =.$.+ 9atch& >0>? Configuration for target& multi@v7@defconfig 6ernel image& arch'arm/boot'3Amage Device tree blob& arch'arm/boot'dts'am3$=x-bone.dtb )ootloader: 9ac#age& .-Boot <ersion& u-boot!+%45.%: 9atch& >0>? Configuration for target& am$$=x_evm_defconfig Amages to use on target& u-boot.img and B20 Too%c*ain: Prefix ).buntu ARM toolchain,& arm-linux-gnueabi! Prefix )7uildroot uClibc toolchain,& arm-linux- TARGET SERIAL N+,)ER: © OPERSYS INC. 3/10 Embedded Linux Exercises Version - 2019.10 “Linux” basics: 4) .se the following commands to install the following packages: $ sudo apt-get install libc6-armel-cross libc6-dev-armel-cross \ > binutils-arm-linux-gnueabi libncurses5-dev $ sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi $ sudo apt install bison flex $ sudo apt install gnupg2 $ sudo apt install libssl-dev +, Configure your PC to connect to beaglebone. -ouCll need to ma#e sure you are part of the “dialout” group and that you can see 'dev/ttyU 7% on your host. $, Download prebuilt SD card image and use the “dd1 command to put it on the SD card and boot with it. ;) .se “picocom” to shell into the Beagle7one. =, Create a local!2"> configuration for your Ethernet card to allow connection to the target using a cross-over ?thernet cable (host& 45+.4DE.+%+.4%%F target& 45+.4DE.+%+.:5). Example Ethernet card configuration& A9"DDRG45+.4DE.+%+.4%% H"T?W"-G45+.4DE.+%+.:5 >?TW0R6G45+.4DE.+%+.% >?TB" 6G+==.+==.+==.% 7R0"DC" TG45+.4DE.+%+.+== &eve%o#ment Wor/s#ace: 4) Download the development wor#space image and put it in your home directory. +) Extract the development wor#space $, Ma#e sure you are able to run the “devenv” setup script to set up your environment variables. ;) Repartition the SD card using the fdisk command for booting the beaglebone =) Put the images in “images/boot-part” on your bootable partition. D, Boot with the newly reformatted card 8 the #ernel should panic because it doesnCt have a root filesystem. ThatCs expected. (erne% )asics: %) Apply any necessary #ernel patch 4, Configure the #ernel for the target. Ma#e sure that support for config.g3 in 'proc is enabled © OPERSYS INC. 4/10 Embedded Linux Exercises Version - 2019.10 )/6ernel .config support1,. +) Build the #ernel $) Anstall the #ernel ;) Build the #ernel modules =) Anstall the #ernel modules D) Build the device trees :) Anstall the beaglebone device tree E) 0verwrite the default #ernel and DT7 on the SD card with the one you have Iust built and boot with them. 5) Check that the #ernel booting is your own in its early messages. )ootloader: %) Apply any necessary .!7oot patch 4) Build .-Boot using this command& $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 am335x_evm_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 +) Anstall .-Boot& J cp B20 JKPRLR00TM'images J cp u-boot.img JKPRJR00TM'images $) Copy the u-boot images to the <N"T partition& J cd JKPRJR00TM'images J cp B20 'media'karim/…. J cp u-boot.img 'media'karim/…. J cp uEnv.txt 'media'karim/…. ;) Boot with .-Boot and try out the online help =) Print .-Boot's environment variables D) Configure your host for serving DQCP requests :) .se “bootp” in .-Boot to get config from DQCP server E) Configure your host for serving TNT9 requests 5) .se TNTP to download image to target 4%) Boot with image 44) Create environment variables in .!7ootCs environment to automate the loading of the #ernel and the DT7 to boot from them using tftp. © OPERSYS INC. 5/10 Embedded Linux Exercises Version - 2019.10 Root 0%es stem: 4) Create essential rootfs directories +, Copy glibc libraries to target's rootfs and strip them. >0T?& contrary to the slides, the libraries are in /usr/arm-linux-gnueabi/lib/ $) Copy #ernel modules to target's rootfs ;) Ma#e sure you have 'dev, 'proc and 'sys in your rootfs =) Configure BusyBox using the “ma#e menuconfig” command D) Build and install 7usyBox :, Create initialization scripts for BusyBox init. Don't forget to set 'etc/init.d'rcS to allow for it to execute (chmod :== 'etc/init.d'rcS). Contrary to the examples in the slides, do not put an entry in 'etc/fstab for >NS, and do not put an entry for “custom-app” in 'etc/inittab. E, Copy your rootfs into the ext; partition on the device 8 youCll have to see what directory itCs mounted to. J cd JKPRJR00TM'rootfs J cp -a JKPRJR00TM'rootfs'R 'media'karim/O 5) Boot the new SD card, you should now have a fully-functional embedded 2inux system 'i%es stem T #es: %) Anstall the MTD utilities for your host 4) Build and install the cramfs utilities +) Create a CR"BN image of your target's root filesystem $) Anstall the romfs utilities $) Create a R0BN image of your target's root filesystem ;) Anstall the squashfs utilities =) Create a squashfs image of your target's root filesystem D) Create a .7ANS image of your target's root filesystem :) Create a LNN + image of your target's root filesystem E) Create a RAM disk image of your target's root filesystem 5) Create an initramfs images of your target's root filesystem 4%) Compare the filesystem image sizes 44, Configure your host and your target so that the target's configuration is obtained at boot time via DQCP and the rootfs is mounted on >NS. © OPERSYS INC. 6/10 Embedded Linux Exercises Version - 2019.10 &evice &rivers 1 Set 23: Write a dynamically loadable device driver for the target that& a, Amplements a character device with the open(), release(), read(), and write), functions. b) .ses the misc_register() functionality to register itself as a character device. c) Provides circular buSer functionality wherein a call to write), causes the input bytes to be written to a buSer and upon a read), causes the bytes in the buSer to be consumed and returned to the caller. .se a “read” pointer and a “write1 pointer to walk around the buSer. A buSer of ;%%bytes is more than sufficient. d) Provides a sysfs interface to print the number of bytes in the buSer. 0'Reilly's /2inux Device Drivers, $rd ed.1 is a useful reference for this exercise. At is found online at& http&''lwn.net'6ernel'2DD$'. There is a copy of a ma#efile to use for building your driver in 2DD$. .sing that ma#efile, you can use a command that has /ARCQG...1 and “CR0 @C0B9A2?G...” to build your module. Nor information regarding misc_register(), see& http&''www.linuxjournal.com/article'+5+% 0nce implemented, you should be able to test your driver by doing& * echo foobar U 'dev/circchar * cat 'dev/circchar foobar Tracin4 "it* ftrace: 4. Reconfigure the #ernel to support ftrace, if it's not already enable& a. The “function1 and “function@graph1 tracers. Ma#e sure you enable C0>NAH@D->"BAC@NTR"CE. b. Modules and module unloading. -ou don't need to enable forced module unloading. +. Rebuild your #ernel, reflash the SD card and reboot. 0r use network booting if you want. $. tart ftrace using the “function” tracer and monitor its output. Careful& once you start ftrace by echoing /4” into tracing@on, it'll stay on until you stop it (i.e. echo /%” into same file). © OPERSYS INC. 7/10 Embedded Linux Exercises Version - 2019.10 ;. .se ftrace to monitor the following& • Scheduling change events • C9. frequency scaling events • Calls to @@kmalloc • Calls to the “brk” system call • Calls to both @@kmalloc and the /brk” system call • All events occurring while the “system@server” process is scheduled • All mcount calls occurring while the “system_server” process is scheduled =. Modify your driver to add a static tracepoint to monitor each read), and write), operation to it. .se trace@print#), to achieve that, remember that youPll have to use B0D.2?@2AC?> ?)/H921, in order to have access to this symbol. Rebuild your driver and reload it on the device. tart ftrace tracing and ma#e sure you can see the output in the ftrace output at runtime when you do a “cat1 or “echo” as above.
Recommended publications
  • The Linux Kernel Module Programming Guide
    The Linux Kernel Module Programming Guide Peter Jay Salzman Michael Burian Ori Pomerantz Copyright © 2001 Peter Jay Salzman 2007−05−18 ver 2.6.4 The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License, version 1.1. You can obtain a copy of this license at http://opensource.org/licenses/osl.php. This book is distributed in the hope it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The author encourages wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the Open Software License. In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Derivative works and translations of this document must be placed under the Open Software License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the material and source code available for your revisions. Please make revisions and updates available directly to the document maintainer, Peter Jay Salzman <[email protected]>. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you publish or distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the author and the Linux Documentation Project (LDP).
    [Show full text]
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • Kernel Boot-Time Tracing
    Kernel Boot-time Tracing Linux Plumbers Conference 2019 - Tracing Track Masami Hiramatsu <[email protected]> Linaro, Ltd. Speaker Masami Hiramatsu - Working for Linaro and Linaro members - Tech Lead for a Landing team - Maintainer of Kprobes and related tracing features/tools Why Kernel Boot-time Tracing? Debug and analyze boot time errors and performance issues - Measure performance statistics of kernel boot - Analyze driver init failure - Debug boot up process - Continuously tracing from boot time etc. What We Have There are already many ftrace options on kernel command line ● Setup options (trace_options=) ● Output to printk (tp_printk) ● Enable events (trace_events=) ● Enable tracers (ftrace=) ● Filtering (ftrace_filter=,ftrace_notrace=,ftrace_graph_filter=,ftrace_graph_notrace=) ● Add kprobe events (kprobe_events=) ● And other options (alloc_snapshot, traceoff_on_warning, ...) See Documentation/admin-guide/kernel-parameters.txt Example of Kernel Cmdline Parameters In grub.conf linux /boot/vmlinuz-5.1 root=UUID=5a026bbb-6a58-4c23-9814-5b1c99b82338 ro quiet splash tp_printk trace_options=”sym-addr” trace_clock=global ftrace_dump_on_oops trace_buf_size=1M trace_event=”initcall:*,irq:*,exceptions:*” kprobe_event=”p:kprobes/myevent foofunction $arg1 $arg2;p:kprobes/myevent2 barfunction %ax” What Issues? Size limitation ● kernel cmdline size is small (< 256bytes) ● A half of the cmdline is used for normal boot Only partial features supported ● ftrace has too complex features for single command line ● per-event filters/actions, instances, histograms. Solutions? 1. Use initramfs - Too late for kernel boot time tracing 2. Expand kernel cmdline - It is not easy to write down complex tracing options on bootloader (Single line options is too simple) 3. Reuse structured boot time data (Devicetree) - Well documented, structured data -> V1 & V2 series based on this. Boot-time Trace: V1 and V2 series V1 and V2 series posted at June.
    [Show full text]
  • Linux for Zseries: Device Drivers and Installation Commands (March 4, 2002) Summary of Changes
    Linux for zSeries Device Drivers and Installation Commands (March 4, 2002) Linux Kernel 2.4 LNUX-1103-07 Linux for zSeries Device Drivers and Installation Commands (March 4, 2002) Linux Kernel 2.4 LNUX-1103-07 Note Before using this document, be sure to read the information in “Notices” on page 207. Eighth Edition – (March 2002) This edition applies to the Linux for zSeries kernel 2.4 patch (made in September 2001) and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright International Business Machines Corporation 2000, 2002. All rights reserved. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Summary of changes .........v Chapter 5. Linux for zSeries Console || Edition 8 changes.............v device drivers............27 Edition 7 changes.............v Console features .............28 Edition 6 changes ............vi Console kernel parameter syntax .......28 Edition 5 changes ............vi Console kernel examples ..........28 Edition 4 changes ............vi Usingtheconsole............28 Edition 3 changes ............vii Console – Use of VInput ..........30 Edition 2 changes ............vii Console limitations ............31 About this book ...........ix Chapter 6. Channel attached tape How this book is organized .........ix device driver ............33 Who should read this book .........ix Tapedriverfeatures...........33 Assumptions..............ix Tape character device front-end........34 Tape block
    [Show full text]
  • Linux Kernel and Driver Development Training Slides
    Linux Kernel and Driver Development Training Linux Kernel and Driver Development Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 9, 2021. Document updates and sources: https://bootlin.com/doc/training/linux-kernel Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/470 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/470 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/470 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • El Núcleo Linux
    El núcleo Linux Josep Jorba Esteve PID_00174426 GNUFDL • PID_00174426 El núcleo Linux Índice Introducción ................................................... ....... 5 Objetivos ................................................... ............ 6 1. El núcleo del sistema GNU/Linux .............................. 7 2. Personalización o actualización del núcleo................... 15 3. Proceso de configuración y compilación ...................... 18 3.1. Compilación antigua de la rama 2.4.x del núcleo . 20 3.2. Migración de 2.4 a la rama 2.6.x del núcleo. 25 3.3. Compilación de la rama 2.6.x del núcleo . 27 3.4. Compilación del núcleo en Debian (Debian Way)............. 30 4. Aplicación de parches al núcleo ................................ 35 5. Módulos del núcleo ............................................... 38 5.1. DKMS: módulos recompilados dinámicamente . 41 6. Virtualización en el núcleo ..................................... 44 6.1. KVM ............................................ .............. 46 7. Futuro del núcleo y alternativas ............................... 53 8. Taller de configuración del núcleo a las necesidades del usuario................................................... ...... 58 8.1. Configuración del núcleo en Debian . 58 8.2. Configuración del núcleo en Fedora/Red Hat . 61 8.3. Configuración de un núcleo genérico . 63 Resumen ................................................... ............ 66 Actividades ................................................... ......... 67 Bibliografía ..................................................
    [Show full text]
  • Hiding Process Memory Via Anti-Forensic Techniques
    DIGITAL FORENSIC RESEARCH CONFERENCE Hiding Process Memory via Anti-Forensic Techniques By: Frank Block (Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) and ERNW Research GmbH) and Ralph Palutke (Friedrich-Alexander Universität Erlangen-Nürnberg) From the proceedings of The Digital Forensic Research Conference DFRWS USA 2020 July 20 - 24, 2020 DFRWS is dedicated to the sharing of knowledge and ideas about digital forensics research. Ever since it organized the first open workshop devoted to digital forensics in 2001, DFRWS continues to bring academics and practitioners together in an informal environment. As a non-profit, volunteer organization, DFRWS sponsors technical working groups, annual conferences and challenges to help drive the direction of research and development. https://dfrws.org Forensic Science International: Digital Investigation 33 (2020) 301012 Contents lists available at ScienceDirect Forensic Science International: Digital Investigation journal homepage: www.elsevier.com/locate/fsidi DFRWS 2020 USA d Proceedings of the Twentieth Annual DFRWS USA Hiding Process Memory Via Anti-Forensic Techniques Ralph Palutke a, **, 1, Frank Block a, b, *, 1, Patrick Reichenberger a, Dominik Stripeika a a Friedrich-Alexander Universitat€ Erlangen-Nürnberg (FAU), Germany b ERNW Research GmbH, Heidelberg, Germany article info abstract Article history: Nowadays, security practitioners typically use memory acquisition or live forensics to detect and analyze sophisticated malware samples. Subsequently, malware authors began to incorporate anti-forensic techniques that subvert the analysis process by hiding malicious memory areas. Those techniques Keywords: typically modify characteristics, such as access permissions, or place malicious data near legitimate one, Memory subversion in order to prevent the memory from being identified by analysis tools while still remaining accessible.
    [Show full text]
  • Enabling Hardware Accelerated Video Decode on Intel® Atom™ Processor D2000 and N2000 Series Under Fedora 16
    Enabling Hardware Accelerated Video Decode on Intel® Atom™ Processor D2000 and N2000 Series under Fedora 16 Application Note October 2012 Order Number: 509577-003US INFORMATIONLegal Lines and Disclaimers IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. A “Mission Critical Application” is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined”.
    [Show full text]
  • Improving the Performance of Hybrid Main Memory Through System Aware Management of Heterogeneous Resources
    IMPROVING THE PERFORMANCE OF HYBRID MAIN MEMORY THROUGH SYSTEM AWARE MANAGEMENT OF HETEROGENEOUS RESOURCES by Juyoung Jung B.S. in Information Engineering, Korea University, 2000 Master in Computer Science, University of Pittsburgh, 2013 Submitted to the Graduate Faculty of the Kenneth P. Dietrich School of Arts and Sciences in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science University of Pittsburgh 2016 UNIVERSITY OF PITTSBURGH KENNETH P. DIETRICH SCHOOL OF ARTS AND SCIENCES This dissertation was presented by Juyoung Jung It was defended on December 7, 2016 and approved by Rami Melhem, Ph.D., Professor at Department of Computer Science Bruce Childers, Ph.D., Professor at Department of Computer Science Daniel Mosse, Ph.D., Professor at Department of Computer Science Jun Yang, Ph.D., Associate Professor at Electrical and Computer Engineering Dissertation Director: Rami Melhem, Ph.D., Professor at Department of Computer Science ii IMPROVING THE PERFORMANCE OF HYBRID MAIN MEMORY THROUGH SYSTEM AWARE MANAGEMENT OF HETEROGENEOUS RESOURCES Juyoung Jung, PhD University of Pittsburgh, 2016 Modern computer systems feature memory hierarchies which typically include DRAM as the main memory and HDD as the secondary storage. DRAM and HDD have been extensively used for the past several decades because of their high performance and low cost per bit at their level of hierarchy. Unfortunately, DRAM is facing serious scaling and power consumption problems, while HDD has suffered from stagnant performance improvement and poor energy efficiency. After all, computer system architects have an implicit consensus that there is no hope to improve future system’s performance and power consumption unless something fundamentally changes.
    [Show full text]
  • Review Der Linux Kernel Sourcen Von 4.9 Auf 4.10
    Review der Linux Kernel Sourcen von 4.9 auf 4.10 Reviewed by: Tested by: stecan stecan Period of Review: Period of Test: From: Thursday, 11 January 2018 07:26:18 o'clock +01: From: Thursday, 11 January 2018 07:26:18 o'clock +01: To: Thursday, 11 January 2018 07:44:27 o'clock +01: To: Thursday, 11 January 2018 07:44:27 o'clock +01: Report automatically generated with: LxrDifferenceTable, V0.9.2.548 Provided by: Certified by: Approved by: Account: stecan Name / Department: Date: Friday, 4 May 2018 13:43:07 o'clock CEST Signature: Review_4.10_0_to_1000.pdf Page 1 of 793 May 04, 2018 Review der Linux Kernel Sourcen von 4.9 auf 4.10 Line Link NR. Descriptions 1 .mailmap#0140 Repo: 9ebf73b275f0 Stephen Tue Jan 10 16:57:57 2017 -0800 Description: mailmap: add codeaurora.org names for nameless email commits ----------- Some codeaurora.org emails have crept in but the names don't exist for them. Add the names for the emails so git can match everyone up. Link: http://lkml.kernel.org/r/[email protected] 2 .mailmap#0154 3 .mailmap#0160 4 CREDITS#2481 Repo: 0c59d28121b9 Arnaldo Mon Feb 13 14:15:44 2017 -0300 Description: MAINTAINERS: Remove old e-mail address ----------- The ghostprotocols.net domain is not working, remove it from CREDITS and MAINTAINERS, and change the status to "Odd fixes", and since I haven't been maintaining those, remove my address from there. CREDITS: Remove outdated address information ----------- This address hasn't been accurate for several years now.
    [Show full text]
  • Thread Scheduling in Multi-Core Operating Systems Redha Gouicem
    Thread Scheduling in Multi-core Operating Systems Redha Gouicem To cite this version: Redha Gouicem. Thread Scheduling in Multi-core Operating Systems. Computer Science [cs]. Sor- bonne Université, 2020. English. tel-02977242 HAL Id: tel-02977242 https://hal.archives-ouvertes.fr/tel-02977242 Submitted on 24 Oct 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Ph.D thesis in Computer Science Thread Scheduling in Multi-core Operating Systems How to Understand, Improve and Fix your Scheduler Redha GOUICEM Sorbonne Université Laboratoire d’Informatique de Paris 6 Inria Whisper Team PH.D.DEFENSE: 23 October 2020, Paris, France JURYMEMBERS: Mr. Pascal Felber, Full Professor, Université de Neuchâtel Reviewer Mr. Vivien Quéma, Full Professor, Grenoble INP (ENSIMAG) Reviewer Mr. Rachid Guerraoui, Full Professor, École Polytechnique Fédérale de Lausanne Examiner Ms. Karine Heydemann, Associate Professor, Sorbonne Université Examiner Mr. Etienne Rivière, Full Professor, University of Louvain Examiner Mr. Gilles Muller, Senior Research Scientist, Inria Advisor Mr. Julien Sopena, Associate Professor, Sorbonne Université Advisor ABSTRACT In this thesis, we address the problem of schedulers for multi-core architectures from several perspectives: design (simplicity and correct- ness), performance improvement and the development of application- specific schedulers.
    [Show full text]
  • Embedded Linux Conference Europe 2019
    Embedded Linux Conference Europe 2019 Linux kernel debugging: going beyond printk messages Embedded Labworks By Sergio Prado. São Paulo, October 2019 ® Copyright Embedded Labworks 2004-2019. All rights reserved. Embedded Labworks ABOUT THIS DOCUMENT ✗ This document is available under Creative Commons BY- SA 4.0. https://creativecommons.org/licenses/by-sa/4.0/ ✗ The source code of this document is available at: https://e-labworks.com/talks/elce2019 Embedded Labworks $ WHOAMI ✗ Embedded software developer for more than 20 years. ✗ Principal Engineer of Embedded Labworks, a company specialized in the development of software projects and BSPs for embedded systems. https://e-labworks.com/en/ ✗ Active in the embedded systems community in Brazil, creator of the website Embarcados and blogger (Portuguese language). https://sergioprado.org ✗ Contributor of several open source projects, including Buildroot, Yocto Project and the Linux kernel. Embedded Labworks THIS TALK IS NOT ABOUT... ✗ printk and all related functions and features (pr_ and dev_ family of functions, dynamic debug, etc). ✗ Static analysis tools and fuzzing (sparse, smatch, coccinelle, coverity, trinity, syzkaller, syzbot, etc). ✗ User space debugging. ✗ This is also not a tutorial! We will talk about a lot of tools and techniches and have fun with some demos! Embedded Labworks DEBUGGING STEP-BY-STEP 1. Understand the problem. 2. Reproduce the problem. 3. Identify the source of the problem. 4. Fix the problem. 5. Fixed? If so, celebrate! If not, go back to step 1. Embedded Labworks TYPES OF PROBLEMS ✗ We can consider as the top 5 types of problems in software: ✗ Crash. ✗ Lockup. ✗ Logic/implementation error. ✗ Resource leak. ✗ Performance.
    [Show full text]