SonyMEI Collaboration Source Tree Overview - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

SonyMEI Collaboration Source Tree Overview

Description:

Has support for ARM and MIPS architectures. Based on MontaVista CE Edition version 3.x ... Lots of ARM board support packages. Lots of MIPS board support packages ... – PowerPoint PPT presentation

Number of Views:98
Avg rating:3.0/5.0
Slides: 33
Provided by: timb3
Category:

less

Transcript and Presenter's Notes

Title: SonyMEI Collaboration Source Tree Overview


1
Sony/MEI CollaborationSource Tree Overview
  • Tim Bird
  • Sony Electronics Inc.
  • Co-Chair of the CE Linux Forum
  • Architecture Group

2
Source Tree Status
  • Based on Linux kernel version 2.4.20
  • Has support for ARM and MIPS architectures
  • Based on MontaVista CE Edition version 3.x

3
Patch metrics
  • Size of Patch (as of June 13) 58 meg.
  • Diffstat
  • 5939 files changed
  • 951,072 insertions
  • 868,691 deletions
  • Thats the bad news!

4
Patch overview
  • Its not as bad as it looks
  • Many of the deletions (95) are from removal of
    /arch directories
  • 820,879 deletions in arch directories
  • Lots of additions are in /arch/arm and
    /arch/mips
  • 150,000 insertions
  • Ignoring these, patch size is comparable to diff
    for average distribution of Linux
  • E.g. RedHat 9.0 has about 23 meg. of diff vs. its
    base kernel

5
Major Area Categories
  • Two major categories of changes
  • MontaVista CE Edition baseline changes
  • Changes specifically for the Sony/MEI
    collaboration project
  • In general, almost every change is configurable
    via a CONFIG_xxx option

6
List of requested technologies
  • Preemptible kernel
  • Lock-break
  • O(1) Scheduler
  • Parallel and deferred I/O initialization
  • BH processing elimination
  • High resolution timers
  • Execute-in-place (XIP)
  • Power Management Framework
  • CPU Frequency Scaling
  • Clock rate change on non-preemptible regions
  • Deferred periodic kernel process
  • Protected RAM FS

7
Resources for StudyingSelected Technologies
8
Important Note!
  • This presentation mostly has information about
    parts of code that are available in open source
  • Other parts of code will be available soon
  • In some cases, code has been backported from 2.5
    to 2.4 kernel (Its availabe for 2.5, but not for
    2.4, publicly)

9
Preemptible kernel
  • Was accepted in kernel in 2.5.4-pre6
  • Early interview with Robert Love at
    http//www.linuxdevices.com/articles/AT8267298734.
    html
  • Very early overview article is athttp//www.linu
    xdevices.com/articles/AT4185744181.html
  • Project home page is athttp//kpreempt.sourcefor
    ge.net/
  • Publicly available patch at ftp//ftp.kernel.org/
    pub/linux/kernel/people/rml/preempt-kernel/v2.4/

10
Preemptible Kernel (cont.)
  • See also
  • /Documentation/preempt-locking.txt
  • Main files are
  • include/linux/spinlock.h
  • kernel/sched.c
  • arch/arm/kernel/entry-armv.S

11
Lock-break
  • Author is Robert Love
  • Publicly available README is at
    ftp//ftp.kernel.org/pub/linux/kernel/people/rml/l
    ock-break/README-lock-break
  • Publicly available patch is at
    ftp//ftp.kernel.org/pub/linux/kernel/people/rml/l
    ock-break/v2.4/

12
Lock-break (cont.)
  • Main file is
  • include/lock_break.h
  • Also useful to walk through
  • lock_break_rml_2.4.18-1.patch
  • Look for long-held kernel locks that this patch
    breaks

13
O(1) Scheduler
  • Author is Ingo Molnar
  • Article about it is at http//www.hpl.hp.com/rese
    arch/linux/kernel/o1.php
  • Some published benchmark results are at
    http//kerneltrap.com/node.php?id343
  • Some background, and insertion
    announcements http//kerneltrap.org/node.php?id
    187
  • Publicly available patch is available
    at http//people.redhat.com/mingo/O(1)-scheduler
    /sched-2.4.19-rc2-A4

14
O(1) Scheduler (cont.)
  • Main file is
  • kernel/sched.c

15
Work queues(Part of BH elimination)
  • Workqueues accepted in kernel at 2.5.40
  • Replaces task queues
  • LWN article is at http//lwn.net/Articles/10963/
  • Main file is
  • kernel/workqueue.c

16
High resolution timers
  • Project home page is athttp//sourceforge.net/pr
    ojects/high-res-timers
  • Main file is
  • kernel/itimer.c

17
Execute-in-place (XIP)
  • Main files are
  • arch/arm/kernel/setup.c
  • arch/arm/mach-omap1510/innovator.c
  • arch/arm/mm/init.c
  • Assembly language files
  • arch/arm/kernel/entry-common.S
  • arch/arm/kernel/head-armv.S
  • Linker script
  • arch/arm/vmlinux-armv-xip.lds.in
  • See also arch/arm/Makefile
  • Grep for CONFIG_XIP_ROM

18
Power Management Framework
  • Framework code is in drivers/dpm
  • Main files are
  • drivers/dpm/dpm.c
  • drivers/dpm/dpm-syscall.c
  • drivers/dpm/dpm-idle.c

19
Change clock rate in non-preemptible regions
  • Main files are
  • fs/devices.c
  • fs/namei.c
  • include/asm-arm/arch-omap1510/omap1510_dpm.h
  • mm/memory.c,
  • arch/arm/config.in
  • arch/arm/mach-omap1510/omap1510_dpm.c

20
Deferred periodic kernel process
  • Related materials
  • Software Matters for Power Consumption
  • http//www.embedded.com/story/OEG20030121S0057
  • Main files
  • arch/arm/mach-omap1510/pm.c
  • kernel/timer.c
  • Grep for CONFIG_VST

21
Protected RAM FS
  • Original work was nvrd
  • nvrd project home page is at http//www.savan.co
    m/erez/nvrd.html
  • Main file is
  • drivers/block/nvprd.c

22
Other Resources
  • Founding members will publish an article on July
    7th in Nikkei EL, with information about the
    collaboration project

23
Other Stuff in the Source Tree
24
Other Stuff in the Source Tree
  • Since code is based on MontaVista CE Edition,
    there are many additional items which are not
    related to the Sony/MEI collaboration project
  • Many of these items are also good for embedded
    Linux projects
  • Things that are unrelated to embedded use of
    Linux are configurable (can be turned off)

25
List of Other Stuff in the Source
  • Support for Xilinx, Altera, and other FPGA
    devices
  • Lots of ARM board support packages
  • Lots of MIPS board support packages
  • lm_sensors patch (it's also in rh-2.4.20-8)
  • More supported buses
  • L3 (3-wire serial), VME, maple, spi, ssi
  • Device USB support

26
Other Stuff (cont.)
  • Sysfs (backport of early 2.5 version)
  • Inflatefs
  • Nvramfs
  • FS Quota support
  • XFS journaling file system
  • Posix message queue FS (not finished)
  • Preemption latency measurement tools

27
Other Stuff (cont.)
  • Some ha (high availability) materials
  • IPSec
  • IPv6 enhancements
  • POSIX Access Control Lists (ACLs)
  • Zlib
  • Cryptographic API

28
Problems to consider
  • Support for other architectures will require some
    work
  • Some patches applied by MontaVista also affect
    other architectures (e.g. files in /arch/i386/)
  • MontaVista has excluded those /arch directories
    from this release
  • This will require some back-porting, or
    reapplication of certain patches for these
    architectures

29
Problems (cont.)
  • Patches are not currently broken into individual
    parts
  • Need to consider how and when to synchronize with
    kernel.org tree

30
Relationship between collaboration project and
other Linux trees
Sony Matsushita Joint Development
Additional Sony/MEI work
Current Sony/MEI project
MVL 3.0CE
Kernel.org 2.4.20
Kernel.org 2.6?
CE Linux Forum Source Tree
31
What to do next?
  • This presentation will be sent to you
  • You can use this presentation to review public
    materials in advance of receiving the source
    code
  • When you get the code, examine the identified
    files, in detail
  • Also, looking at a diff of Documentation/Configure
    .help is helpful

32
Q A
Write a Comment
User Comments (0)
About PowerShow.com