Title: SonyMEI Collaboration Source Tree Overview
1Sony/MEI CollaborationSource Tree Overview
- Tim Bird
- Sony Electronics Inc.
- Co-Chair of the CE Linux Forum
- Architecture Group
2Source 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
3Patch metrics
- Size of Patch (as of June 13) 58 meg.
- Diffstat
- 5939 files changed
- 951,072 insertions
- 868,691 deletions
- Thats the bad news!
4Patch 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
5Major 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
6List 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
7Resources for StudyingSelected Technologies
8Important 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)
9Preemptible 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/
10Preemptible Kernel (cont.)
- See also
- /Documentation/preempt-locking.txt
- Main files are
- include/linux/spinlock.h
- kernel/sched.c
- arch/arm/kernel/entry-armv.S
11Lock-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/
12Lock-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
13O(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
14O(1) Scheduler (cont.)
- Main file is
- kernel/sched.c
15Work 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
16High resolution timers
- Project home page is athttp//sourceforge.net/pr
ojects/high-res-timers
- Main file is
- kernel/itimer.c
17Execute-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
18Power 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
19Change 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
21Protected 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
22Other Resources
- Founding members will publish an article on July
7th in Nikkei EL, with information about the
collaboration project
23Other Stuff in the Source Tree
24Other 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)
25List 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
26Other 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
27Other Stuff (cont.)
- Some ha (high availability) materials
- IPSec
- IPv6 enhancements
- POSIX Access Control Lists (ACLs)
- Zlib
- Cryptographic API
28Problems 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
29Problems (cont.)
- Patches are not currently broken into individual
parts
- Need to consider how and when to synchronize with
kernel.org tree
30Relationship 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
31What 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
32Q A