https://elinux.org/api.php?action=feedcontributions&user=Vomlehn&feedformat=atomeLinux.org - User contributions [en]2024-03-19T04:23:45ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=ELC_2010_Presentations&diff=19737ELC 2010 Presentations2010-04-21T22:32:23Z<p>Vomlehn: </p>
<hr />
<div>Presenters, Demo-ers, Participants:<br />
Thanks very much for your participation in CELF's [http://www.embeddedlinuxconference.com/elc_2010/index.html Embedded Linux Conference 2010].<br />
<br />
This page is for collecting the presentations that were made at the conference. During and<br />
after the conference we will collect materials from the presenters and place them here.<br />
Please watch this page if you are interested in a particular presentation - and it if<br />
doesn't show up, please send me an e-mail and we'll try to track it down.<br />
<br />
== Videos ==<br />
Video from the conference are being made by Free Electrons, and when they are available a link<br />
will be posted here.<br />
<br />
== Instructions ==<br />
'''Presenters:''' Please post your technical conference presentations on this page.<br />
(See Instructions below the tables)<br />
<br />
= Table of Presentations =<br />
<br />
{| border="1" cellspacing="0" cellpadding="4"<br />
|- bgcolor="#c0e0e0"<br />
|+ '''Keynotes and Panel'''<br />
|- bgcolor="#c0e0e0"<br />
| align="center" | '''Presenter(s)'''<br />
| align="center" | '''Session Description''' <br />
| align="center" | '''Presentation'''<br />
|-<br />
|Greg Kroah-Hartman<br />
|Android: A Case Study of an Embedded Linux Project <br />
| [[Media:Gregkh-android-presentation-celf2010.tar.gz|TGZ]]<br />
|-<br />
|Matt Asay<br />
|Embedded in 2010: An End to the Entropy?<br />
|<br />
|}<br />
<br />
<br /><br />
<br />
{| border="1" cellspacing="0" cellpadding="4"<br />
|- bgcolor="#c0e0e0"<br />
|+ '''Presentations'''<br />
|- bgcolor="#c0e0e0"<br />
| align="center" | '''Presenter(s)'''<br />
| align="center" | '''Session Description''' <br />
| align="center" | '''Presentation'''<br />
|-<br />
|Mike Anderson<br />
|Using a JTAG to Debug Linux Device Drivers<br />
|[[Media:JTAG_Anderson.pdf|PDF]]<br />
|-<br />
|Mike Anderson<br />
|Using Interrupt Threads to Prioritize Interrupts<br />
|[[Media:InterruptThreads_Anderson.pdf|PDF]]<br />
|-<br />
|Mike Anderson<br />
|Creating a Secure Router Using SELinux<br />
|[[Media:SELinux_Anderson.pdf|PDF]]<br />
|-<br />
|Mike Anderson<br />
|Strategies for Migrating Uniprocessor Code to Multi-Core SMP<br />
|[[Media:MigratingToMultiCore_Anderson.pdf|PDF]]<br />
|-<br />
|Steve Bennett<br />
|Effective Use of Scripting in Embedded Devices<br />
| [[Media:Embedded-scripting-slides.pdf|Slides]] | [http://www.workware.net.au/papers/embedded-scripting.pdf Paper]<br />
|-<br />
|Tim Bird<br />
|State of Embedded Linux<br />
|[[Media:Status-of-embedded-Linux-2010-04-ELC.pdf|PDF]] | [[Media:Status-of-embedded-Linux-2010-04-ELC.odp|ODP]]<br />
|-<br />
|Magnus Damm<br />
|Kexec - Ready for Embedded Linux?<br />
|[[Media:ELC-2010-Damm-Kexec.pdf|PDF]]<br />
|-<br />
|Kevin Dankwardt<br />
|Effective Use of RT-Preempt<br />
|<br />
|-<br />
|Lucas Martins De Marchi<br />
|Multi-core Scheduling Optimizations for Soft Real-time Multi-threaded Applications -- A Cooperation Aware Approach<br />
|[[Media:sched-optimization-2010.pdf|PDF]] | [[Media:sched-optimization-2010.odp|ODP]]<br />
|-<br />
|Mathieu Desnoyers<br />
|Using the LTTng Tracer for System-wide Performance Analysis and Debugging (Hands-On Tutorial)<br />
|[[Media:Desnoyers-presentation-elc2010.pdf|PDF]] | [http://www.efficios.com/elc2010 examples]<br />
|-<br />
|Jake Edge<br />
|Understanding Threat Models for Embedded Devices<br />
|[[Media:Edge-Elc-2010.pdf|PDF]] | [[Media:Edge-Elc-2010.odp|ODP]]<br />
|-<br />
|Mark Gross<br />
|Experiences in Android Porting, Lessons Learned,Tips and Tricks<br />
|[[Media:ELC2010-android-xp-tips-tricks.pdf|PDF]]<br />
|-<br />
|Kevin Hilman<br />
|Runtime Power Management: Overview and Platform Implementation<br />
|[[Media:ELC-2010-Hilman-Runtime-PM.pdf|PDF]]<br />
|-<br />
|YungJoon Jung and DongHyouk Lim<br />
|Measuring Responsiveness of Linux Kernel on Embedded System<br />
|<br />
|-<br />
|Hiromasa Kanda<br />
|Lock-free Algorithm for Multi-Core Architecture<br />
|[[Media:ELC2010_Lockfree.pdf|PDF]]<br />
|-<br />
|Jeremy Katz<br />
|An Introduction to the Qt Development Framework<br />
|[[Media:qt_intro.pdf|PDF]]<br />
|-<br />
|Yoshitake Kobayashi<br />
|Evaluation of Data Reliability on Linux File Systems<br />
|[[Media:Evaluation_of_Data_Reliability-ELC2010.pdf|PDF]]<br />
|-<br />
|Yong Bon Koo and Youngbin Seo<br />
|DVFS for Embedded Linux<br />
|<br />
|-<br />
|Rob Landley<br />
|Developing for Non-x86 Targets Using QEMU<br />
|[[Media:Developing_for_non_x86_targets_using_QEMU.pdf|PDF]]<br />
|-<br />
|Melanie Rhianna Lewis<br />
|Case Study - Embedded linux in a Digital Television STB<br />
|<br />
|-<br />
|Grant Likely<br />
|Flattened Device Tree ARM Support Update<br />
|[[Media:ARM_Device_Tree_Status_Report.pdf|PDF]]<br />
|-<br />
|Dan Malek<br />
|Embedded Multi-core with Adeos<br />
|<br />
|-<br />
|German Monroy<br />
|Wake-ups Effect on Idle Power for Intel's Moorestown MID and Smartphone Platform<br />
|[[Media:Effect_of_wakeups_on_Moorestown_power.pdf|PDF]]<br />
|-<br />
|Jeff Osier-Mixon<br />
|Effectively Managing Documentation for Embedded Linux Projects<br />
|[[Media:Jeffrey-osier-mixon-elc2010.pdf|PDF]]<br />
|-<br />
|Jacob Pan<br />
|Porting the Linux Kernel to x86 MID Platforms<br />
|[[Media:Jacob-Pan-x86MID-elc2010.pdf|PDF]]<br />
|-<br />
|Steven Rostedt<br />
|Ftrace - Embedded Edition<br />
|[http://people.redhat.com/srostedt/ftrace-embedded.odp ODP]<br />
|-<br />
|Frank Rowand<br />
|Real-Time Linux Failure<br />
|[[Media:Real_time_linux_failure.pdf|PDF]]<br />
|-<br />
|Leandro Melo de Sales<br />
|Understanding and Developing Applications for Maemo Platform<br />
|[[Media:understanding_dev_maemo_platform_leandro.pdf|PDF]]<br />
|-<br />
|Gene Sally<br />
|GPIO: Talking to the Outside World<br />
|[[Media:Celf-gpio.odp|ODP]]<br />
|-<br />
|David Schleef<br />
|Recent Developments in Open Video Technology<br />
|<br />
|-<br />
|Frank Scholz<br />
|Mirabeau - Creating Personal Media Networks and Bridging DLNA/UPnP Devices Over The Internet<br />
|<br />
|-<br />
|Masahiko Takahashi<br />
|A Consideration of Memory Saving by Efficient Mapping of Shared Libraries<br />
|[[Media:ELC2010-memory-saving-takahashi.pdf|PDF]]<br />
|-<br />
|Rob Taylor<br />
|Semantic Data Storage for Mobile Devices<br />
|[http://www.codethink.co.uk/assets/elc2010-tracker-talk.pdf PDF]<br />
|-<br />
|Sujith Thomas<br />
|Workload-based Aggressive Power Management on the Intel Moorestown MID and Future Intel MID/Smartphone Platforms<br />
|[[Media:WordloadCharacterization-ELC-final.pdf|PDF]]<br />
|-<br />
|Matthew Tippett<br />
|Engaging Developer Communities: Lessons and Opportunity from webOS<br />
|[[Media:MPT-ELC-2010.pdf|PDF]]<br />
|-<br />
|Dominique Toupin<br />
|Linux Toolchain Overview with Advanced Debugging and Tracing Features<br />
|[[Media:TraceDebug_EmbeddedLinuxConApril2010.pdf|PDF]]<br />
|-<br />
|Bill Traynor<br />
|eLinux.org wiki Present & Future<br />
|[[Media:elc.pdf|PDF]]<br />
|-<br />
|Greg Ungerer<br />
|Linux Without a Boot Loader?<br />
|[[Media:LinuxWithoutABootLoader.pdf|PDF]] | [[Media:LinuxWithoutABootLoader.odp|ODP]] | [[Media:LinuxWithoutABootLoader-source.tar.gz|source]]<br />
|-<br />
|Hans Verkuil<br />
|Supporting SoC video subsystems in video4linux<br />
|[[Media:celf-sf-v4l2.odp|ODP]]<br />
|-<br />
|Denys Vlasenko<br />
|Link Time Dead Code and Data Elimination Using GNU Toolchain<br />
|[[Media:ELC2010-gc-sections_Denys_Vlasenko.odp|ODP]] | [[Media:ELC2010-gc-sections_Denys_Vlasenko.pdf|PDF]]<br />
|-<br />
|Alexey Volkov<br />
|Implementing Asynchronous Zero-Copy API for Embedded IVR Application<br />
|[ftp://volkoff.ru/sharez/Doc/zcaio_elc2010.pdf Slides], [ftp://volkoff.ru/sharez/Doc/zcaio.pdf Paper]<br />
|-<br />
|David VomLehn<br />
|No Crash Dump? No Problem!<br />
|[[Media:CELF_2010-No_Crash_Dump,_No_Problem.pdf|PDF]]<br />
|-<br />
|John Williams and Edgar Iglesias<br />
|Custom Hardware Modeling for FPGAs and Embedded Linux Platforms with QEMU<br />
|<br />
|-<br />
|Vitaly Wool<br />
|Polishing Dirt: Porting RTOS Code to Linux Userspace Driver Framework<br />
|<br />
|-<br />
|Benjamin Zores<br />
|GeeXboX Enna: embedded Media Center<br />
|[[Media:ELC_2010_-_BZ_-_GeeXboX_Enna_-_Embedded_Media_Center.pdf|PDF]]<br />
|}<br />
<br />
<br /><br />
<br />
{| border="1" cellspacing="0" cellpadding="4"<br />
|- bgcolor="#c0e0e0"<br />
|+ '''Birds-of-a-Feather Sessions'''<br />
|- bgcolor="#c0e0e0"<br />
| align="center" | '''Presenter(s)'''<br />
| align="center" | '''Session Description''' <br />
| align="center" | '''Presentation'''<br />
|-<br />
|Grant Likely<br />
|Small Business Owners BOF<br />
|No slides<br />
|-<br />
|Bill Traynor<br />
|eLinux.org wiki Present & Future<br />
|[[Media:elc.pdf|PDF]]<br />
|-<br />
|David Mandala<br />
|Ubuntu on ARM<br />
|<br />
|-<br />
|Kevin Hillman<br />
|Power Management BOF<br />
|<br />
|}<br />
<br />
== Instructions for Presenters ==<br />
Please create a link in the table for your presentation, copying the style of other links.<br />
(You may need to create an account in order to edit the wiki or upload files.)<br />
<br />
When you have created the link, click on it to upload the file containing your slides.</div>Vomlehnhttps://elinux.org/index.php?title=File:CELF_2010-No_Crash_Dump,_No_Problem.pdf&diff=19736File:CELF 2010-No Crash Dump, No Problem.pdf2010-04-21T22:30:04Z<p>Vomlehn: Presentation for ELC 2010, "No Crash Dump? No Problem!"</p>
<hr />
<div>Presentation for ELC 2010, "No Crash Dump? No Problem!"</div>Vomlehnhttps://elinux.org/index.php?title=Main_Page&diff=19325Main Page2010-04-13T03:57:16Z<p>Vomlehn: </p>
<hr />
<div>{|<br />
| nowrap style="vertical-align: top; font: bold xx-large sans-serif;" |<br />
Embedded Linux Wiki<br />
|}<br />
<!--<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #CCCC00; padding:0 1em 1em 1em; background-color:#ffffcc; align:right;"><br />
'''Site Upgrade Notification!'''<br />
<br />
The site will undergo maintenance today (May 27, 2009) between the hours of 10:00 pm EDT and 5:00 PM EDT or earlier. Edits will be disabled during this period. Removal of this notice will indicate that edit capability had been restored. Thanks for your patience.<br />
</div><br/><br />
--><br />
<!--'''Who's Online''' <whosonline></whosonline>--><br />
<br />
<br/><br />
Welcome to the eLinux wiki! The purpose of this wiki is to preserve and present information about the<br />
development and use of Linux in embedded systems. To use this wiki, click on one of the portal links below.<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:''' <br />
* [[BeagleBoard_Trainer|Trainer Boards]] are now available from [http://tincantools.com/product.php?productid=16149&cat=0&page=1&featured TinCanTools]<br />
* [[BeagleBoard_Zippy|Zippy Boards]] are now available from [http://www.sparkfun.com/commerce/product_info.php?products_id=9731 SparkFun]!<br />
* [[BeagleBoard_Zippy2|Zippy2]] 100baseT Expansion boards for the [[BeagleBoard]] are now available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&keywords=zippy2 Digikey]!<br />
*CELF has announced their [[CELF Open Project Proposal 2010|Open Project Proposal plan]] for 2010 contract projects.<br />
*SubPages are now enabled. To list subpages add the following code to a page: <code><nowiki><splist/></nowiki></code> &nbsp; For more information of <nowiki><splist/></nowiki> please see the [http://www.mediawiki.org/wiki/Extension:SubPageList3 Extension:SubPagesList3] page.<br />
*Source Highlighting is now enabled. For usage examples, see [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi_ParserFunction Extension:SyntaxHighlight_GeSHi_ParserFunction] page and the [[Hello_World_in_C|Hello World in C]] example page.<br />
</div><br />
<br />
== Development Portals ==<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-top:10px; margin-right:10px; padding: 0 1em 1em 1em; align:right;"><br />
<div style="margin-left: 25px;"><br />
<br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
| style="width: 25%;" | [[image:Welly1.jpg|link=Boot Time]] [[Boot Time]]<br />
| style="width: 25%;" | [[image:cfcard.jpg|link=Memory Management]] [[Memory Management]]<br />
| style="width: 25%;" | [[image:Padlock2.jpg|link=Security]] [[Security]]<br />
| style="width: 25%;" | [[image:Event.jpg|link=Events]] [[Events]]<br />
|-<br />
| [[image:Multimedia.png|link=Multimedia]] [[Multimedia]]<br />
| [[image:Power.png|link=Power Management]] [[Power Management]]<br />
| [[image:Blimp.jpg|link=System Size]] [[System Size]]<br />
| [[image:Skull.jpg|link=Hardware Hacking]] [[Hardware Hacking]]<br />
|-<br />
| [[image:Filecab.jpg|link=File Systems]] [[File Systems]]<br />
| [[image:clockface.jpg|link=Real Time]] [[Real Time]]<br />
| [[image:Board2.jpg|link=Resource Management]] [[Resource Management]]<br />
| [[image:Board.jpg|link=Development Platforms]] [[Development Platforms]]<br />
|-<br />
| [[image:Icon-network.png|link=:Category:Networking]] [[:Category:Networking|Networking]]<br />
| [[image:Processor.png|link=Firmware]] [[Firmware]]<br />
| [[image:justice-scales.png|link=Legal Issues]] [[Legal Issues]]<br />
| [[image:Toolbox.jpg|link=Toolbox]] [[Toolbox]]<br />
|-<br />
| [[image:Android.png|link=Android Portal]] [[Android Portal]]<br />
| [[image:Category-box.png|link=:Category:Categories]] [[:Category:Categories]]<br />
| <br /><br />
| <br /><br />
|}<br />
<br />
</div><br />
</div><br />
<br />
<hr><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
OMAP3 [[BeagleBoard]] Sponsored Project Program<br />
<br />
Join [[BeagleBoard/contest#Sponsored_Project_Program|BeagleBoard Sponsored Project Program]] and have the chance to get a free BeagleBoard for your project!<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ccffff; align:right; "><br />
'''Highlight - Did you know...?'''<br />
<br />
[[Squash FS]] was accepted into the mainline kernel, and is now in 2.6.29? <br />
SquashFS is a compressed, read-only filesystem, commonly used in many existing embedded Linux systems.<br />
Phillip Lougher, the Squash FS maintainer, was sponsored by CELF to push this code to mainline.<br />
It had been used as patches outside of mainline for many years.<br />
<br />
See the [[Squash FS|elinux wiki SquashFS page]] or http://en.wikipedia.org/wiki/Squashfs for more information about this useful filesystem.<br />
</div><br />
<br />
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #dfdfdf; padding: 0 1em 1em 1em; align:right;"><br />
'''Embedded Linux Information'''<br />
<div style="margin-left: 25px;"><br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
|style="width: 20%;"|[[image:Productsico.jpg|link=Products]] [[Products]]<br />
|style="width: 20%;"|[[image:Companysico.jpg|link=Companies]] [[Companies]]<br />
|style="width: 20%;"|[[image:Vendorsico.jpg|link=Vendors]] [[Vendors]]<br />
|style="width: 20%;"|[[image:Processorsico.png|link=Processors]] [[Processors]]<br />
|-<br />
|[[image:communityico.jpg|link=Community]] [[Community]]<br />
|[[image:communityico.jpg|link=Experts]] [[Experts]]<br />
|[[image:at-work.jpg|link=Jobs]] [[Jobs]]<br />
|[[image:Companysico.jpg|link=Board and Chip Vendors]] [[Board and Chip Vendors]]<br />
|}<br />
</div><br />
</div><br />
<br />
== Technology Watch List ==<br />
See the [[Technology Watch List]] for a list of interesting<br />
projects and their current status in the Linux development<br />
community.<br />
<br />
== eLinux.org Information and Usage tips ==<br />
The main portals of the site take you to lists of resources or collections of<br />
information, you can use to tackle problems in the particular area referred to.<br />
For example, if you have a problem with boot up time of your embedded Linux system,<br />
click on "Boot Time".<br />
You can also see a list of [[Special:Allpages|all the pages on this site]].<br />
<br />
The following icons are for general information about this site, and related resources. <br />
<div style="margin-left: 50px;"><br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
|style="width: 25%;"|<br />
[[image:mp_info.png|16px|link=Help:About]] [[Help:About|About]]<br/><br />
[[image:mp_help.png|16px|link=Help:Contents]] [[Help:Contents|Site Policy]]<br />
|style="width: 25%;"|<br />
[[image:mp_man.png|16px|link=Help:Editing]] [[Help:Editing|Editing Help]]<br/><br />
[[image:mp_wanted.png|16px|link=Wanted]] [[Wanted|Wanted Pages]]<br />
|style="width: 25%;"|<br />
[[image:mp_mail.png|16px|link=eLinuxWiki:Mailing List]] [[eLinuxWiki:Mailing List|Mailing Lists]]<br/><br />
[[image:mp_irc.png|16px|link=eLinuxWiki:Irc]] [[eLinuxWiki:Irc|IRC]]<br />
|style="width: 25%;"|<br />
[[image:mp_admin.png|16px|link=eLinuxWiki:Glossary]] [[eLinuxWiki:Glossary|Glossary]]<br/><br />
[[image:mp_twitter.png|16px|link=http://twitter.com/elinux]] [http://twitter.com/elinux Twitter Follow]<br />
|}<br />
</div><br />
We hope this information is helpful in your development tasks.<br />
<br />
If you see something wrong, please change it. If you know something more about an issue, please<br />
add it. Please [[volunteer editor tasks|help to extend]] this wiki. Thank you!<br />
<br />
----<br />
To experiment with this wiki try [[Sandbox]]. See the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] for usage and configuration help.<br />
<br />
[[Category:Community| ]]<br />
[[Category:Categories| ]]</div>Vomlehnhttps://elinux.org/index.php?title=Main_Page&diff=19316Main Page2010-04-13T03:32:20Z<p>Vomlehn: </p>
<hr />
<div>{|<br />
| nowrap style="vertical-align: top; font: bold xx-large sans-serif;" |<br />
Embedded Linux Wiki<br />
|}<br />
<!--<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #CCCC00; padding:0 1em 1em 1em; background-color:#ffffcc; align:right;"><br />
'''Site Upgrade Notification!'''<br />
<br />
The site will undergo maintenance today (May 27, 2009) between the hours of 10:00 pm EDT and 5:00 PM EDT or earlier. Edits will be disabled during this period. Removal of this notice will indicate that edit capability had been restored. Thanks for your patience.<br />
</div><br/><br />
--><br />
<!--'''Who's Online''' <whosonline></whosonline>--><br />
<br />
<br/><br />
Welcome to the eLinux wiki! The purpose of this wiki is to preserve and present information about the<br />
development and use of Linux in embedded systems. To use this wiki, click on one of the portal links below.<br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
'''NEWS:''' <br />
* [[BeagleBoard_Trainer|Trainer Boards]] are now available from [http://tincantools.com/product.php?productid=16149&cat=0&page=1&featured TinCanTools]<br />
* [[BeagleBoard_Zippy|Zippy Boards]] are now available from [http://www.sparkfun.com/commerce/product_info.php?products_id=9731 SparkFun]!<br />
* [[BeagleBoard_Zippy2|Zippy2]] 100baseT Expansion boards for the [[BeagleBoard]] are now available from [http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&keywords=zippy2 Digikey]!<br />
*CELF has announced their [[CELF Open Project Proposal 2010|Open Project Proposal plan]] for 2010 contract projects.<br />
*SubPages are now enabled. To list subpages add the following code to a page: <code><nowiki><splist/></nowiki></code> &nbsp; For more information of <nowiki><splist/></nowiki> please see the [http://www.mediawiki.org/wiki/Extension:SubPageList3 Extension:SubPagesList3] page.<br />
*Source Highlighting is now enabled. For usage examples, see [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi_ParserFunction Extension:SyntaxHighlight_GeSHi_ParserFunction] page and the [[Hello_World_in_C|Hello World in C]] example page.<br />
</div><br />
<br />
== Development Portals ==<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin: 0; margin-top:10px; margin-right:10px; padding: 0 1em 1em 1em; align:right;"><br />
<div style="margin-left: 25px;"><br />
<br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
|style="width: 25%;"|<br />
[[image:Welly1.jpg|link=Boot Time]] [[Boot Time]]<br /><br /><br />
[[image:Multimedia.png|link=Multimedia]] [[Multimedia]]<br /><br /><br />
[[image:Filecab.jpg|link=File Systems]] [[File Systems]]<br /><br /><br />
[[image:Icon-network.png|link=:Category:Networking]] [[:Category:Networking|Networking]]<br /><br /><br />
[[image:Android.png|link=Android Portal]] [[Android Portal]]<br />
|style="width: 25%;"|<br />
[[image:cfcard.jpg|link=Memory Management]] [[Memory Management]]<br /><br /><br />
[[image:Power.png|link=Power Management]] [[Power Management]]<br /><br /><br />
[[image:clockface.jpg|link=Real Time]] [[Real Time]]<br /><br /><br />
[[image:Processor.png|link=Firmware]] [[Firmware]]<br />
|style="width: 25%;"|<br />
[[image:Padlock2.jpg|link=Security]] [[Security]]<br /><br /><br />
[[image:Blimp.jpg|link=System Size]] [[System Size]]<br /><br /><br />
[[image:Board2.jpg|link=Resource Management]] [[Resource Management]]<br /><br /><br />
[[image:justice-scales.png|link=Legal Issues]] [[Legal Issues]]<br />
|style="width: 25%;"|<br />
[[image:Event.jpg|link=Events]] [[Events]]<br /><br /><br />
[[image:Skull.jpg|link=Hardware Hacking]] [[Hardware Hacking]]<br /><br /><br />
[[image:Board.jpg|link=Development Platforms]] [[Development Platforms]]<br /><br /><br />
[[image:Toolbox.jpg|link=Toolbox]] [[Toolbox]]<br /><br /><br />
[[image:Category-box.png|link=:Category:Categories]] [[:Category:Categories]]<br />
|}<br />
<br />
</div><br />
</div><br />
<br />
<hr><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ffffcc; align:right; "><br />
OMAP3 [[BeagleBoard]] Sponsored Project Program<br />
<br />
Join [[BeagleBoard/contest#Sponsored_Project_Program|BeagleBoard Sponsored Project Program]] and have the chance to get a free BeagleBoard for your project!<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ccffff; align:right; "><br />
'''Highlight - Did you know...?'''<br />
<br />
[[Squash FS]] was accepted into the mainline kernel, and is now in 2.6.29? <br />
SquashFS is a compressed, read-only filesystem, commonly used in many existing embedded Linux systems.<br />
Phillip Lougher, the Squash FS maintainer, was sponsored by CELF to push this code to mainline.<br />
It had been used as patches outside of mainline for many years.<br />
<br />
See the [[Squash FS|elinux wiki SquashFS page]] or http://en.wikipedia.org/wiki/Squashfs for more information about this useful filesystem.<br />
</div><br />
<br />
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #dfdfdf; padding: 0 1em 1em 1em; align:right;"><br />
'''Embedded Linux Information'''<br />
<div style="margin-left: 25px;"><br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
|style="width: 20%;"|[[image:Productsico.jpg|link=Products]] [[Products]]<br />
|style="width: 20%;"|[[image:Companysico.jpg|link=Companies]] [[Companies]]<br />
|style="width: 20%;"|[[image:Vendorsico.jpg|link=Vendors]] [[Vendors]]<br />
|style="width: 20%;"|[[image:Processorsico.png|link=Processors]] [[Processors]]<br />
|-<br />
|[[image:communityico.jpg|link=Community]] [[Community]]<br />
|[[image:communityico.jpg|link=Experts]] [[Experts]]<br />
|[[image:at-work.jpg|link=Jobs]] [[Jobs]]<br />
|[[image:Companysico.jpg|link=Board and Chip Vendors]] [[Board and Chip Vendors]]<br />
|}<br />
</div><br />
</div><br />
<br />
== Technology Watch List ==<br />
See the [[Technology Watch List]] for a list of interesting<br />
projects and their current status in the Linux development<br />
community.<br />
<br />
== eLinux.org Information and Usage tips ==<br />
The main portals of the site take you to lists of resources or collections of<br />
information, you can use to tackle problems in the particular area referred to.<br />
For example, if you have a problem with boot up time of your embedded Linux system,<br />
click on "Boot Time".<br />
You can also see a list of [[Special:Allpages|all the pages on this site]].<br />
<br />
The following icons are for general information about this site, and related resources. <br />
<div style="margin-left: 50px;"><br />
{|style="width: 100%; margin:0; padding:0; border-collapse: collapse;"<br />
|style="width: 25%;"|<br />
[[image:mp_info.png|16px|link=Help:About]] [[Help:About|About]]<br/><br />
[[image:mp_help.png|16px|link=Help:Contents]] [[Help:Contents|Site Policy]]<br />
|style="width: 25%;"|<br />
[[image:mp_man.png|16px|link=Help:Editing]] [[Help:Editing|Editing Help]]<br/><br />
[[image:mp_wanted.png|16px|link=Wanted]] [[Wanted|Wanted Pages]]<br />
|style="width: 25%;"|<br />
[[image:mp_mail.png|16px|link=eLinuxWiki:Mailing List]] [[eLinuxWiki:Mailing List|Mailing Lists]]<br/><br />
[[image:mp_irc.png|16px|link=eLinuxWiki:Irc]] [[eLinuxWiki:Irc|IRC]]<br />
|style="width: 25%;"|<br />
[[image:mp_admin.png|16px|link=eLinuxWiki:Glossary]] [[eLinuxWiki:Glossary|Glossary]]<br/><br />
[[image:mp_twitter.png|16px|link=http://twitter.com/elinux]] [http://twitter.com/elinux Twitter Follow]<br />
|}<br />
</div><br />
We hope this information is helpful in your development tasks.<br />
<br />
If you see something wrong, please change it. If you know something more about an issue, please<br />
add it. Please [[volunteer editor tasks|help to extend]] this wiki. Thank you!<br />
<br />
----<br />
To experiment with this wiki try [[Sandbox]]. See the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] for usage and configuration help.<br />
<br />
[[Category:Community| ]]<br />
[[Category:Categories| ]]</div>Vomlehnhttps://elinux.org/index.php?title=Memory_Management&diff=9146Memory Management2009-01-23T02:33:12Z<p>Vomlehn: /* Areas of Interest */</p>
<hr />
<div>This page has information about various memory management projects and activities which are of interest to embedded Linux developers.<br />
<br />
== Areas of Interest ==<br />
<br />
Most of these areas have wider reaching implications, but are relatively simpler in the embedded case, largely thanks to not having to contend with swap and things of that nature. Simpler memory management as well as vendors not afraid of deviation from mainline for product programs makes for an excellent playground for experimenting with new things in the memory management and virtual memory space.<br />
<br />
=== Memory Measurement ===<br />
Analyzing the amount of system memory in use and available is trickier than it sounds.<br />
<br />
* See [[Runtime Memory Measurement]] for different methods of measuring and analyzing system memory.<br />
<br />
* See [[Accurate Memory Measurement]] for some different techniques for dealing with inadequacies in current memory measurement systems.<br />
<br />
=== Huge/large/superpages ===<br />
<br />
*This applies to both transparent large page usage as well as the more static usage models, primarily relating to work outside of the hugetlb interface/libhugetlbfs.<br />
*Embedded systems suffer from very small TLBs generally using PAGE_SIZE'd pages (4kB) for coverage. In most cases this places the system under very heavy pressure for any kind of userspace work, and very visibly degrading performance, with most applications taking anywhere from 5-40% of their time on the CPU servicing page faults.<br />
*Preliminary discussion on this subject as well as links to additional information is happening through the wiki here: [http://linux-mm.org/ Huge Pages]<br />
<br />
=== Page cache compression ===<br />
<br />
*This relates to using various compression algorithms for performing run-time compression and decompression of page cache pages, specifically aimed at both reducing memory pressure as well as helping performance in certain workloads.<br />
*More information can be found on the wiki here [http://linux-mm.org/CompressedCaching CompressedCaching] as well as at the [http://linuxcompressed.sourceforge.net SF Compressed Caching] home page.<br />
<br />
=== Reserving (and accessing) the top of memory on startup ===<br />
A quote from Todd's email on how to use the reserved physical memory in "mem=".<br />
<br />
----<br />
<br />
Given that you have a fixed address for your memory, and is already <br />
reserved, the easier way to use it is by calling mmap() over the /dev/ <br />
mem device, use 0 as the start address, and the physical address of <br />
the reserved memory as the offset. The flags could be MAP_WRITE| <br />
MAP_READ. That will return you a pointer on user space for your <br />
memory mapped by the kernel. For example<br />
<br />
If your SDRAM base address is 0x80000000 and your memory is of 64MB, <br />
but you use the cmdline mem=60M to reserve 4MB at the end. Then your <br />
reserved memory will be at 0x83c00000, so all you need to do is<br />
<br />
<pre><br />
int fd;<br />
char *reserved_memory;<br />
<br />
fd = open("/dev/mem",O_RDWR);<br />
reserved_memory = (char *) mmap(0,4*1024*1024,PROT_READ| PROT_WRITE,MAP_SHARED,fd,0x83c00000);<br />
</pre><br />
----<br />
<br />
=== Enhanced Out-Of-Memory (OOM) handling ===<br />
Several technologies have been developed and suggested for improving the handling out-of-memory conditions with Linux systems.<br />
<br />
See http://linux-mm.org/OOM_Killer for information about the OOM killer in the Linux kernel.<br />
<br />
Part of OOM avoidance is for the kernel to have an accurate measure of memory utilization.<br />
See [[Accurate Memory Measurement]] for information on technology in this area.<br />
<br />
Here are some technologies that I know about (these need to be researched and documented better):<br />
* mem_notify patches<br />
** This set of patches provided a mechanism to notify user-space when memory is getting low, allowing for application-based handling of the condition. These patches were submitted in January 2008.<br />
** See http://lwn.net/Articles/267013/<br />
* Google per-cgroup OOM handler<br />
** Google posted a Request For Comments (RFC) for OOM handling implemented in a per-cgroup fashion. See http://article.gmane.org/gmane.linux.kernel.mm/28376<br />
* Nokia OOM enhancements<br />
** Maemo application enhancements referenced at: http://lwn.net/Articles/267013/ (search for "killable" in the comments)<br />
<pre><br />
User "oak" writes (commenting on the mem_notify patches):<br />
<br />
Posted Feb 3, 2008 14:02 UTC (Sun) by oak (guest, #2786) [Link]<br />
<br />
...<br />
<br />
I thought the point of the patch is for user-space to be able to do the <br />
memory management in *manageable places* in code. As mentioned earlier, <br />
a lot of user-space code[1] doesn't handle memory allocation failures. And <br />
even if it's supposed to be, it can be hard to verify (test) that the <br />
failures are handled in *all* cases properly. If user-space can get a <br />
pre-notification of a low-memory situation, it can in suitable place in <br />
code free memory so that further allocations will succeed (with higher <br />
propability). <br />
<br />
That also allows doing somehing like what maemo does. If system gets <br />
notified about kernel low memory shortage, it kills processes which have <br />
notified it that they are in "background-killable" state (saved their UI <br />
state, able to restore it and not currently visible to user). I think it <br />
also notifies applications (currently) through D-BUS about low memory <br />
condition. Applications visible to user or otherwise non-background <br />
killable are then supposed to free their caches and/or disable features <br />
that could take a lot of additional memory. If the caches are from heap <br />
instead of memory mapped, it's less likely to help because of heap <br />
fragmentation and it requiring more work/time though.<br />
</pre><br />
* Paul Mundt submitted a patch to CELF for the 2.6.12 kernel which provided low-memory notifications to user space. See [[Accurate_Memory_Measurement#Nokia_out-of-memory_notifier_module]] for more information.<br />
** This module was based on the Linux Security Module system, which has been removed from recent kernels.<br />
<br />
== Additional Resources/Mailing Lists ==<br />
*[http://linux-mm.org LinuxMM] - links to various sub-projects, and acts as a centralized point for discussion relating to memory management topics ([mailto:majordomo@kvack.org linux-mm] mailing list and [http://marc.theaimsgroup.com/?l=linux-mm archives]).<br />
<br />
[[Category:Linux]]</div>Vomlehn