Okay welcome everyone to my status of admitted Linux talk this is a talk that I have given on occasion I apologize in advance I have a lot of material to cover it's gonna be a little bit like this and so I have about a little under 70 slides and about 35 minutes to do it in so that you can calculate that in your head how fast I'm gonna need to go these are the major areas I'm gonna go over the basic purpose of this talk is not to give you in-depth information about anything maybe not maybe not even information about anything but basically what I want to do is review the last year's worth of things that have been going on mainly in the kernel community but also throughout the embedded industry so that you have and then there's a bunch of links in the presentation that will be uploaded to the links foundation site there's a version one up there but it's different from this one because it was a week ago and stuff keeps happening but basically the idea is if you see something interesting that you want to follow up on hopefully you'll have some pointers and at least knowledge of this I found I've been working at embedded companies for a long time and sad to say in the CE space were always a couple of revs of the kernel behind and sometimes we don't we're not aware of some of the interesting stuff that's going on so hopefully this will help you out so let's start with kernel versions the pace of versions is consistent and very good the kernel processes are working really well I'm sure they'll talk about it more they're having a kernel summer right now as we speak and they keep improving the process if you look at the history of the kernel releases for a while there last year we're averaging about 70 days that actually has shortened down to about 63 65 days so I think Jonathan Corbett I miss Jonathan Corbett's talk earlier in the week he made a prediction I think I think he said Halloween I am not I'm cynical I'm gonna predict that it's gonna be on November 8th so I don't know I don't I I should revise these slides when I get new information but I'm kind of lazy that way so so I'll say this next one will be 68 days closer to the 70 day version we've been having but but so there's all all the stuff that's kind of in 312 is already in there one of the things I've done this year with this talk is I've switched it around so there's a whole bunch of information that I gathered up per kernel version for each of these 36 through 312 and I'm actually not even gonna cover that so it's a big departure so I've left the reference material it's at the it's in the slides it's at the end of the presentation so when the slides are online you can go look at specific features and embedded that have happened and I I see people are still coming in so why don't we do one iteration of this there's not a whole lot of empty seats but if everybody could slide if you've got an empty seat between you and the middle aisle if you could slide towards the middle aisle or slide away from well slide away from the edges whatever an edge constitutes for you so people can sit down as they come in what no you just you're it's dead center so you're fine oh yeah yeah slide away from Jake Edge so boot up time so what's the status of boot up time well pretty much if you put some elbow grease into it you can get the kernel brooding in about one second but it does still take a lot of work per product you there's a lot of tweaking you have to do there's lots of resources available there's a lot of presentations a lot of materials on this so the information is out there but you kind of do have to work on it yourself to get this done there are a good a good recent presentation I found was this one that I have a link to on slide share so there's a there's lots of techniques and unfortunately due to the nature of embedded a lot of times you have to go in and just manually apply these techniques yourself to your project so the curls in pretty good shape but user space that's a whole another story okay so there's a lot been a lot more focus on user space recently in terms of boot up time angstrom is using system D is cone in here can I smack him so system D yuck okay I I know how to do RC scripts but I don't know how to do system D anyway but that's the type of thing we're gonna see these accelerated boot up time systems coming up in user space Android is really bad but there are people working on it and there are commercially available systems for doing Android booting a little bit faster most of them involve things like snapshot booting taking snapshot of the systems Jim Huang of Xerox lab I'm not sure if that's how you pronounce it did some really interesting work and showed how to get an Android system booting in about 15 seconds and he was doing some really cutting-edge stuff involving checkpoint and restart on the process level and so if you're interested in speeding up Android booting definitely recommend that you go look at his slides he's got some great material there in terms of graphics we're seeing in general in the industry not you know embedded covers a wide range of territory and so we're seeing in the industry you know there's still lots of devices that have you know little LCDs displays but we're also seeing at the top end we're seeing a lot higher resolutions and so a lot of interesting work around the GPUs the buffer management involved with those movement away from frame buffer you got this crazy stuff coming out of Google render script which is basically compile compile on the device some of the GPU specific materials to optimize for the specific device at runtime but one of the big issues because we're moving so much data around is the buffer management the we have these big date big buffers and so you really have to be paying attention to how many copies of the data you're doing and also an area of graphics is always a sore point for Linux is embedded GPUs so I don't know I don't know of anyone that's actually shipping commercial production well I don't know of any maybe you guys do shipping with an open source drivers for their GPU so there are however and this is something that's changed pretty recently it's pretty neat that there are lots of SSE GPU open source projects going on and they seem to really like these anagrams so the Lima project is for the Mali GPU the etna Veeve is actually Vivante spelled backwards great is Tegra free Drino that's not an acronym that's so but there's so there's a lot of GPU work going on in open source and that's actually a really good thing and you know I thought maybe pigs were flying or something and video is even helping out with the nouveau driver which is pretty cool and so there is a shake-up going on so it's surprising that even this late or I don't know I kind of think of it as late in the evolution of embedded that we're seeing different chipsets different GPUs jockeying for position you see that Molly and Vivante just in the last year have really started to come on strong and some big shifts in the GPU space what I I really should have attributed this I got it out of some article online so yeah it's confidential I can't reveal where I got that from actually I just made it up right so so in terms of file systems so we there's a there's still interesting work going on with file systems kind of the biggest news I think in the last couple years has been the movement away from Ron and flash over to emmc so you get this block layer between you and the flash and that has some interesting effects it's kind of well understood in the file system space that Linux file systems were not designed for block devices with kind of zero read latencies you know there's no seek head latency there's no rotational latency and so flash is capable of a lot more I operations per second and that affects the design of file systems and so we're still in kind of a process where we're tuning the existing Linux file systems for flash devices and so one of the things that we've done in the CE workgroup is we hired a company to go out and look at some of those tuning options existing configuration options for the Linux kernel and for existing flash file systems to indicate kind of help developers choose which file system might be more most appropriate for them the three that we looked at in our study were ext4 butterfs and f2fs and then measure the effects of different tuning options for those so there's a result document that's on the elinux wiki if you're interested in this in the performance of your file system on emmc highly recommend you go look at it the the the executive summer summary of the entire document is well the tuning options depend on your workload what a surprise so but you can look and they have all these different workloads they've run and stuff and I think big news in the file system space is this f2fs which is a flash friendly file system developed by samsung this is mainline in linux version 3.8 so a lot of us who are running on older kernels have not seen this yet or had access to it they just added support for security attributes in the latest version of the kernel it's log structured it's way too complicated to go into all the details here there's a really really excellent talk by the Samsung developers on this both at elce last year and elce in the u.s. and I heard that moto x is using this I heard this from another Sony mobile developer and that there it's getting really good results so I used to have this bullet point used to be I don't know how good it is but I've heard that it's pretty good but I don't have numbers anyway so that's something to look at if you're doing mobile devices you really should be looking at f2fs and and see the see if it works for your workload and then I would re-remiss if I did not mention the x-fat incident I don't know if you're familiar with this but kind of a cloak and dagger type of story so the x-fat file system is the file system that was standardized for sd cards and so it's almost a requirement to support it if you're in the tablet or mobile phone space or cameras or any of those devices that take a plug-in media so there was some code that was released by a Russian developer and it was liberated from Samsung we don't know exactly how this came about we're not sure about the license and I think it had been shipped as a binary module by Samsung it looks like if you look at the source code maybe some of the code was derived from the kernel and so it should have been gpl Samsung released the code as full gpl a couple weeks later if I were you I'd be really careful about using that code and I'll just leave it at that there are there are ways to interface with the x-fat file system at I'll just tell you Sony's solution I'm not recommending this to anyone but our solution is to access it from user space so that we're not and we're doing it with non-gpl code because you have to pay royalties if you if you work with this file system and so there's and royalties and patents and gpl don't go along together so enough said actually more than too much said actually so memory management yeah it's all confidential so yeah so the ion memory allocator is the new Android memory allocator to allow sharing buffers well I've got a slide on it allows sharing memory buffers between different subsystems in the kernel and this is again to reduce copies different devices have different memory constraints whether the memory can be cached whether it needs to be contiguous so whether it's dma able so ion can detect select the different memory is to fulfill these constraints so that different subsystems can communicate and and have the appropriate memory for them but so this is a pretty neat system and there are other things in the system like dma buff or in cma in already in the kernel this has some kind of neat unique features but it also is Android specific it uses arm specific page accessors probably have a difficult time getting mainline but I know there are people already working on looking at it and seeing if the ideas can come into those other subsystems or or ways to make it more generic to more suitable for mainline so power management and I've got a I'm already behind okay so if you look at the evolution of power management we started with some easy stuff suspend resume stuff that kind of comes over from desktop and laptop and then we started working on voltage and frequency scaling longer sleeps with tick reduction runtime device power management so we can flip on and off individual IP blocks in the in the kernel and a big thing race to sleep try to get to sleep as fast as possible which is kind of the usage model for mobile devices most people except for teenagers are not on their mobile devices active 90% of the time but so most of our times our phones are asleep but so we've already done a lot of stuff with power management and so the new stuff tends to look kind of crazy and so I'm gonna talk about these real quick so there's auto sleep powerware scheduling including big dot little scheduling memory power power management and full tick list and I apologize for going so fast but I'm gonna go through these really quick so auto sleep is basically wake locks under a different name and this tests Rafael theory that you just need to rename it to get it into the kernel and and the answer is yes that's what you need to do to get something into the kernel powerware scheduling so there's this there's a lot of schedule and some of the stuff is not mainline yet sleep that auto sleep stuff that I just said is but power was scheduling there's we're meetings on Tuesday about this a lot of this is still out of the kernel but the basic idea is to select processes try to migrate them off of CPUs so that you can put more CPUs in an idle state and conserve power and that's kind of the whole thing about big dot little so in big dot little the idea is you have some very high powered processors that can do work fast you have some low powered processors that can do work very power efficiently and somehow you balance the workloads between those this is kind of what I think big dot little is like so it's a crazy scheme and it's going to be hard to get it to work right but if you can do it it'll be kind of neat I don't know so fast efficient I don't know one of those two so there's a whole bunch of stuff about big dot little scheduling and how to achieve that there's stuff with multi cluster power scheduling the big dot little actual scheduling stuff is often called in kernel switcher and because that's because it's switching the workload between the the more capable processors in the lighter lower end processors there was some really interesting work that was reported on elixcon Japan by some guys at rena sauce we're still waiting I don't know if it's someone raised their hand if they know if big dot little is actually shipped in anything and we actually have real-world results I don't know of any okay so I'll take that as a no and then memory power management what has it shipped what kind of product was it in oh I'm sorry they were laughing next door what so what what was it in sorry okay oh the s4 really oh okay well smoking Samsung oh it's not okay so it's in okay so a lot of this stuff is kind of dribbling in so it's pretty interesting the other thing in power that I'll get to really quick is device pm and I mean memory power management and so this is kind of the same thing as with the processor except instead of moving stuff around between processors you're moving around between memory regions so that you can actually shut memory banks off and so and I don't have time to talk more about that full tick list this is another thing in order to isolate CPUs we have the no hurts option in the kernel already but that's for if you are if you're idle this allows you to shut some CPUs off completely even when you're active by migrating processes off of them or by keeping keeping them isolated from the rest of the system and there's information on that okay so system size some of the things that have been going on is volatile ranges I don't know if you're aware that is but that's the ability for processes to hand memory back to the kernel and say hang on to this I if you need it for someone else you can destroy it you can take it away from me but if you don't need it for someone else keep it around and I if I ask for it later give it back to me so there's really good for stuff like browser caches where you're you can have the performance associated with having that caching but if you get low on memory it's a voluntary relinquishment to the kernel of the memory so it's it's really good there's also some work that Lex marks did similar type of thing with having a broker manage voluntary memory regions a lot of people have been working on different systems for reducing some of the major components like the libc so some work on bionic libc and eg libc particularly in the area of configurability I did this big project this was at my former company which was Sony I'm now working for Sony it's a long story and if you've ever worked for a mega corporation you know how that works but anyway so this is I did a bunch of research and looked at some existing research the thing I'm most excited about in the near term is this set of patches called the link time optimization patches I was able to apply them on arm and I got an immediate completely free 380k reduction in kernel size and that was not even putting some work into it I did some other things like system call elimination and kernel command line argument and elimination the academic research on the kernel indicates that about 50% of every kernel is completely unexcuted code and so there are these systems for trying to reclaim that either to compress it or eliminate it through some other kind of really difficult heuristic mechanisms at the linker level I've got a presentation on that if you want to look at it in terms of security I'm going to just blow past this really quickly the interesting thing in security I think is that we now see mainline Linux security systems being used in embedded product that was not true just a couple of years ago so we're seeing smack has been adopted by Tizen it's got a simplified rule set and in the security space simplified means 40,000 rules but also Android has adopted SE Linux and I always thought and SE Linux was going to be way too big to be adopted in the embedded space but the NSA blessed their hearts besides spying on people they they rolled up their sleeves and reduced the rule set for SE Android and got it down to a 71k policy size that is like amazing so we're now can actually use some of these hot what I would consider high-end security features mandatory access control that type of thing in embedded and that's pretty nice there's also a really excellent talk by a guy David Safford talking about how to secure low-end devices without adding additional cost to add things like detecting firmware modification preventing modification doing signed updates and all that stuff and I'll let you look at the at the slides for that and then one thing I saw at LinuxCon Japan is really excited about is a thing called K-Tap for years we were hoping that in terms of tracing system tap would be available but they just never seem to get the cross compilation stuff right and but this K-Tap actually has an interpreter in the kernel and so that is I think a pretty exciting new project to look at for kind of future tracing stuff and what what presentation would be complete without some kind of discussion about device tree so yeah I don't know a tree with yarn on it I have no idea how that relates but let me cut right to the chase I apologize to the device tree guys I know there's some in the audience I don't like device tree it's it okay so it supports single Z image which is really important and it does some really good things it requires drivers separate separate hard not hardware configuration I've learned that that's the wrong terminology the hardware definition from the code and so pushes the code away from platform data structures but it offends my embedded sensibilities and I have to explain what I mean by that so I come from the old school where man you compile the kernel for that hardware dang it and and and it was optimized for that so I think in the process of moving to device tree we're losing the ability to statically configure and highly optimize so since I spent the last like year working on how to statically optimize the kernel the stuff in device tree you lose all of that at least that I've found and so I'm actually kind of trying to think of some ways that I can kind of reclaim that it's also kind of a royal pain so there but it's a new requirement for implementing arm boards port and drivers I found it a little bit complicated to use there's numerous device tree presentations at this conference and it is what it is we're gonna have to to work with it and and all of these complaints that I have listed on this slide are actually being actively worked on and so this is a bit of an unfair slide let's see I'm just gonna okay so I'm thinking in terms of things to watch looking forward we have those Android features the volatile ranges and the memory allocator that have to do with with memory management we'll see a lot more device tree churn we're probably gonna see a schema analyzer or a schema checker validator I guess the right word for device tree we're gonna see some maturation in a lot of the documentation and probably some more changes to some of the infrastructure for that and power we're scheduling the other big thing kind of looming on the horizon it's been looming for years and years is non-volatile mass memory and what do I mean by that I mean persistent RAM is what I'm talking about and it comes in various forms there's phase change RAM there's M RAM this stuff has been kind of lurking around the edges for years and years I actually saw a demo five years ago of a phone that had M RAM on it so the RAM when you turn the phone off the RAM state held its contents if this stuff ever makes it to a price point that where it gets into embedded devices it's gonna be really really interesting Linus had some interesting remarks about it last year at Linux con he says it's not gonna change kernel key algorithms those take too long to change probably what will happen is if this stuff becomes popular it'll affect the first place it'll show up is in the file systems and so that's just kind of something to be looking at it will be really interesting in terms of power management what happens when this persistent RAM if it becomes popular if it becomes adopted okay so with that let's talk about the C workgroup projects so this last year we just had one that I really want to highlight and that's the MCC tuning guide I already talked about that a little bit we did just and I already had a slide on this I'm not sure why that's in there twice we just had our open project proposals we had about 18 proposals and we discussed them this week we selected eight projects to fund I can't really announce them yet because we haven't gone through our final approval but hopefully we'll select some projects this week to finalize and fund and so one of one of the projects I think I safe to say that we approved was actually some funding for some device tree documentation so we're actually trying to roll up our sleeves and help with some of that stuff the other kind of another major project that we're working on is called the long-term support initiative it's a kernel that is kind of geared towards having it's based on the LTS the community long-term stable kernel but it's got a couple of extra things that the industry thinks would be good to integrate into the tree so there's some pretty rigid rules about what you can put in a long-term stable kernel in from the community standpoint pretty much only bug fixes and in the LTSI tree there's a little bit more flexibility there and it's really intended to give the embedded industry as a whole a common kernel to work on that's that's held for a little bit longer in terms of stability so the kind of the news here is 3.4 has been available for a while we held some workshops in Japan and talked about a testing mission there was actually a presentation this morning on that a white paper was released recently talking about the value of that and it's pretty clear that the next well the LTSI is always based on the current LTS so the net 3.10 was just announced by Greg Carl Hartman as the next long-term stable community release and so we'll be basing the next version of LTSI on that so some other stuff I have more slides I'm going fast just in terms of tools a couple of things there's a core dumper that I saw at ELC that I thought was pretty interesting I've done this type of thing in the past doing crash dumps on embedded platforms as a bit of an art and there was this new tool that I saw at ELC that talked about how to do a sparse core dump you can't really do a full core dump you don't have the memory for it and so if you if you're looking at crash dumps and the kind of the issues around that this is a good presentation also a good presentation on debugging techniques by Kevin Dankwart in terms of testing frameworks we have a lot of testing frameworks C work group is looking at funding some more work around the LTSI kernel for testing there was a good present actually a birds of a feather session by Matt Porter and we're always looking for input if you want to provide input to us either get on the LTSI dev mailing list or the C Linux dash dev mailing list that's where we kind of hold our conversations about these things build systems we have an embarrassment of riches I've been working with embedded Linux for 20 years okay and I know some of you are probably shocked because I don't I look like I'm only 30 right no no so and it used to be the good old days well I get the bad old days I guess you used to have to compile GCC by hand on the command line and it was a royal pain and now we have all these tools available it's it's like the golden age of embedded Linux it really is we've got the Octo project which is this very big high-end system lots of documentation lots of support we've got build route we've got Android and there's a lot of things people can be doing with Android even if they're not using kind of the upper upper parts of the Android stack so we've got an embarrassment of riches for build systems in terms of distributions we've got Tizen out there we've got and that seems to well you know I'm not sure where it's being positioned it looked like it's maybe heading towards automotive but I know Samsung still is interested in using that on smartphones as kind of a hedge against their Android bet they've got Android use in you can use Android in non-ce and Kareem often talks about that and Yachto if I if I was to be position some of these so Yachto project I don't know what they call the distro that's inside it whether pokey is kind of still a build system but pocky sorry yeah pocky so pocky is kind of the new in-house distro that you that you kind of I was going to say mangle that's not the word that you manipulate yourself that you change stuff and then angstrom is actually a really nice kind of package distro so there's a package feed you can get new binaries for it it's kind of like the embedded desktop OS where it's really easy you can get new binary packages and it's very common on development boards the Beaglebone comes with angstrom a lot of boards do so we've got a variety of distributions in terms of resources we have the elinx wiki there's it's a lot of the information on here is stale that's kind of the nature of wikis well it's this wiki but there's lots of information out there and you often see references in other people's presentations to specific pages out here either about power management or especially boot up time or things like that there's a project if you want to get involved with the video transcription project we're trying to get we try to have references to the last eight years worth of ELC talks we've got as many presentations as we could gather up there including links to a lot of the videos that have done by free electrons and and other folks and we really we'd like to try and transcribe some of those to make that material very easily available miscellaneous i want to talk about kernel community civility that was kind of an issue that came up embedded contribution status and some hardware so there were some complaints and over the last couple months about how whether or not the kernel developer community was civil enough there was a lot of discussion in the end i think everybody thinks it's a good idea to be as civil as you can some people are saying well you kind of need to be harsh you don't want people to get the wrong idea you don't want to be vague about your rejection and sometimes rejection is needed to to help people do the right thing but it's being discussed at the kernel summit i think this is overall i think it's the trends we're seeing the kernel mailing list is a lot more civil than it used to be trust me on that one so i think we're in a pretty good shape here and i think it'll continue to improve hardware one of the things i thought and this is kind of unfair i just kind of picked a couple of things that were interesting to me personally the intel quark processor was announced at idf this year intel developer forum and it's a power efficient 486 it really shows that intel is diving low they have a galileo board that is not out yet i think it's supposed to come out early next month that is arduino compatible so this intel targeting the maker market it's a signal of intel getting into the low end and i think we're going to see a lot more stuff with linux being targeted at the internet of things and so you know the next couple billion devices should be running linux that's kind of our that's kind of i would like to see that happen also the apple has this m7 and this is not related to linux but this is a trend in the hardware is that we're seeing separate processors being used to offload specific uh functionality especially in mobile devices and this is primarily for power management but it's also to enable things that you wouldn't normally have so even if your phone is in full standby uh on future apple phones you'll be cattle you'll be logging location information ostensibly for the purpose of serving the user but uh anyway but that's interesting i mean there are there are interesting things that users can do with a full location data right and so um i think it's an interesting trend well i think we'll see more of that type of stuff um in terms of contribution status uh embedded companies are doing more and more contributions to the linux kernel uh in the if you look at the lgn.net and the top 3.11 contributors you see a lot of soc vendors you see a whole lot of linaro out there um and uh so this is really good if you're just now getting into contributing to the linux kernel there's an excellent um excellent document i found talking about the mechanics of contributing your very first patch to linux highly recommend that i think it would still be good for us to continue to publish best practices for companies um and there is still this problem with what i call version gap where you know there's a whole lot of companies uh my company included we're shipping 3.4 on most of our cell phones and uh it'd be a lot nicer if we could be shipping 312 well we won't you know we will we'll never be right at the top of tree when we were releasing products because there's a qa cycle and all that but it should be nice to be closer to the top of tree um and so that's always something uh so maybe device tree will give us the stable api we've always wanted ha ha um okay and then this this is what i wanted to kind of leave time for so i have this new thing and this is where i i'm going to turn it into a little bit of a birds of a feather session which is the best of so what i want to do is i want to hear from you uh at least in these two categories that i've chosen what do you think is the smallest linux system that's an actual shipping product so i found one and then also the fastest booting so i found a product and i didn't even try very hard so this is me being lazy the tp link mr 3020 is a wi-fi hotspot hot spot it ships with a four meg flash ship it's got 128k u-boot one megabyte partition for the kernel and a 2.8 meg root file system it ships in 32 meg of dram and i know the 32 meg that's like oh come on tim you didn't even try hard there's got to be a system out there that's running in eight meg of ram or four meg of ram so does anybody know of anything that's actually smaller than this okay what do you got tell me about it oh it's the smaller version of that what what's see i i didn't even do research well okay what do you got back there okay memota how do you spell it okay okay what was it again efm 32 if just give me whatever is googleable okay so i'm gonna look those up and i want to continue to kind of improve this and uh kind of have like a little not a contest per se but just you know let people know well what's the smallest we're doing how are we doing on the smallest okay so the fastest boot so these are not shipping products so supposedly uh i think i think these may have been kind of the same effort uh you can boot a beagle board in 630 milliseconds uh that's pretty impressive i don't uh when i did this i kind of knew whether that was going all the way i know it's going all the way to user space but i don't know if it's getting actual video application up and running um monovista a couple years ago touted touted this dashboard boot in less than a second does anyone know if that made it into product if if cars have this sub one second boot okay i need to i need to keep looking at that does anybody know something really fast i believe it was it was in the chevy volt is the chevy volt running monovista oh that's pretty cool okay well i'll check that out okay a Volvo with an old map for oh how come all these cars i guess the cars are okay okay i'll look at that okay well that's cool okay so we have systems out there booting in under a second i don't know what's android's problem is okay so uh resources so this is where i get my material from uh and uh lwm.net i just am totally ripping them off so if you are not a subscriber to lwm.net please subscribe i plug them this is a there's a great resource um and even if you don't need the information you should throw a couple bucks their way in terms of the kernel releases uh kernel new base always does a really good page in addition to the lwm.net pages and then the slides from this and all previous elcs and elc europe's are available on the elinux wiki so and there's a ton of information if you find yourself wanting to find out about some topic uh you really should go back to these slides i don't know how googleable it is um i don't know if google picks up a lot of times on the searches but it's worth kind of scanning through and finding the slides uh the ce workgroup a lot of the discussions we have like about these projects that were proposed happens on the ce linux dev mailing list uh and then the lexicon japan slides just a couple of months ago that's where those slides are located um overall the status of the industry is very healthy uh a very conservative estimate uh is that over 1.5 billion billion devices have shipped with embedded linux and this is a absolutely a conservative estimate uh if you look just at the number of android phones it's above 900 million and if you look at all the tv's all the digital cameras all the routers uh we're well over that but it's really hard to get the actual numbers on on those individual categories so we're still going strong so we used to joke we used to joke about world domination that used to be the joke we did we don't joke anymore because it's kind of it's kind of rude once you've done it um so that's all i've got uh thanks for listening we've got time for a couple of questions okay are there any questions i left time for questions and i'll feel really bad if nobody asks anything because i went so fast oh uh there is up here we could pass it back so you said the the processes of the linux kernel are are good and healthy and i i agree yet to recap my talk earlier i think we there is a something to be aware of and that is it's totally great that a lot of companies are now contributing to the kernel but the way we get new code and patches does not scale with the amount of review and maintenance we have and uh hearing that the the industry is healthy is nice to hear and i think the next step would be to see that assuring the quality of the linux kernel by maintenance and so it's not nothing to do anymore with what a developer developer does as a side project next to his work but to recognize it as an independent job and and putting some money into it that would be really good to keep this great quality of linux we want to yeah no i totally agree with that and that that's actually that's not a new problem right so it's it's uh always been it's always been hard to get uh the amount of review you'd like on on stuff and it's especially um in my opinion it's especially more difficult because a lot of the soc vendors are relatively new at contributing and uh my experience as sony is that the product engineers they're on a treadmill they're on a deadline and they're usually not the ones that the company's gonna have work on open source there was a really great talk by andrew mortin a couple years ago uh about how to structure your um kernel development team so that you've got some spare resources off to the side not that are not on the treadmill uh that can contribute to the mainline effort and i i agree with you i think it would be really good for companies to do more of that to make sure that they have dedicated people helping out on on projects and review and that type of thing and i think we're going right now especially with the um with all these contributions we're seeing from soc vendors it's a real big crunch and it's a significant problem so i i don't have an answer but you know i talked with you there you go yeah um that study you did on the flash file system is interesting yeah yeah sure okay um so the study you did on the flash file system is interesting and i was wondering if you'd ever plan doing one uh which would actually measure the wear leveling of those emmcs um i'm trying to remember they did there was a robustness component because i remember reading it and they said well we're not going to test this is too expensive to like or something like that yeah i don't the wear leveling you have to run them for a long time right to to see where they because there's no way they're black total black boxes absolutely you and so you have to run them till they fail and so that's the whole point so um i don't we don't currently have plans to do a follow-up on that study so all right okay so i'll move for two okay any any other questions okay there's one in the back um with regards to test systems and frameworks etc i understand that there's a new kernel test framework that intel um have invested in um that runs tests on each kernel commit etc builds it and runs it as it build and it provides detailed output uh on each commit you know i yes i i is it worth i mean is that an option for discussion to find out optimizations that could be done within the kernel and yeah i don't there is something i i and it was discussed at the last kernel summit does anybody here remember i don't remember that much about it there is something that's running i think on every kernel commit or at least on the you know the stable ones that it can build systems it's called zero day okay okay do you know if it is it doing arm in addition to like intel hardware or no it's not okay okay oh maybe we should get this i'll repeat so there's something called zero day um and it does do builds on multiple trees multiple configurations i'm assuming i think that's what i heard at the last yeah it does multiple different dev configs for multiple different architectures but as far as i know it's only booting on intel hardware but it's extremely fast sometimes you get a report if you're a maintainer you get a report that you broke before you even get your pull request out which is really nice but yeah so that's that's uh run by uh folks at intel so what about uh linaro is i know linaro has a test effort and does anyone qualify to talk about the status of that or being that i work for linaro maybe i shouldn't talk about kevin's done some work and it's working really well and he's gonna do some more for arm uh linaro has a whole test framework that currently has been mainly focused more on the linaro releases which hasn't been very useful actually it's not useful at all for for upstream maintainers and so on the goal is that this the lava thing you mentioned is going to get to a point more similar to what zero day does with automatic bisecting and all these types of things because well one of the problems with zero day right now is intel has basically said it's gonna remain closed so that's you can get output from it but you can't actually use it so i'm not sure if the future that but so anyway linaro is kind of doing something uh on a similar lines separate from linaro the olaf and myself as the rmsoc maintainers we've been doing basically automatic build and boot testing for a pile of different arm platforms um so we're just doing we're doing that for for mainline for next for rmsoc and a couple other trees right now so between the two of us we have you know i don't know 20 or 30 different arm platforms that are getting built and boot for for all those trees whenever there's a new commit or whenever there's a new branch that comes out for those okay so it so from the c work groups perspective we're just on the very uh beginning phases of uh looking at doing some automated testing continuous integration testing for the ltsi kernel and i don't actually know yet what the types of what types of tests we're going to be doing and in terms of whether they're performance regression functionality tests but there is high level of interest within the work group the member companies to do some stuff there and including making the testing infrastructure we develop available and i don't know right now i don't i don't think we've decided what we're building it on yet it may be based on lava or so the goal for lanaro is that lava it lava is completely open and the goal for lava is to be that framework so okay so the stuff we're doing is rmsoc maintainers is much very much short term as the lava kind of gets into gear and gets to a scalability point to do all these things in a much more open way okay okay uh are there any other questions okay what okay i'll put my big little that's supposed to be duct tape by the way on there let me see where is it somewhere was it did i miss it did i go past it tracing oh wait let me see it's back it's before or after okay it should be under pm oh okay memory there it is so yeah and i'm not casting aspersions on any brand of cars or anything like that yeah that would be the internal switcher metaphor uh well it would yeah i'll have to think about that okay thank you very much


The bookmarked volume dots display the transactions that have taken place on the best bid and offer. The green dots are aggressive market buy orders that have transacted on the best offer. The red dots are aggressive sell orders transacted on the best bid. Let's zoom in and use the data tip tool for details. I'll make the volume dots a little bit bigger here by the slider on the toolbar. Let's hover over this green dot here and you can see the fourth line of text gives us the volume information. This dot is for volume of 2. This red dot over here is for a volume of 211. Therefore the size and the color of the dot display the type of trade and its relative volume. Sometimes the volume is displayed as a pie chart to give the overall delta of the volume that has taken place. Let's continue to zoom in here. And you can see that bookmap has broken apart all of those transactions that make up that volume delta. We can continue to zoom in here and see all the details that have exactly unfolded. We are down at microsecond level. We can continue to zoom in if needed but you can see that the trades counter is showing eight transactions that have taken place here for a total volume of 25. Let's zoom out again and you can see we've aggregated the volume back into a larger green dot that shows a volume of 25. Now let's right click on the volume dots here and bring up the volume dot settings. You can display the dots as 2D dots or 3D bubbles. You can play with the size of the dots that you want displayed here, the transparency, and then in clustering there are different settings here to cluster the volume in specific ways. You can have it by none, smart which is a combination of basically time and volume and you can play with the slider here to make the clustering influence bigger or smaller. You can display it by time, by every minute here, or second, or hour, or by volume, and input an amount of volume you want here to be displayed per each dot. You can also inherit your volume dot settings from your bars or you can apply them to the bars as well. There are some filtering options down below here with minimum displayed volume. If you bump up the number here you will display an aggregate view of each dot. With the minimum trade size filter you will display each transaction for the precise amount that you input here. For more information about the volume dot settings go up to bookmap help and user guide here and this will bring up the bookmap user guide on our online wiki.


Alright, so now we already saw that changing the angle of attack of flight which the pilot does can make you fly level at various velocities. So the lift that you need should be equal to weight and that is a function of only half rho v square s and cl that is there in level flight. So as the value of v reduces that means you want to maintain lift equal to weight at low velocities. Then if you cannot do anything else because if the altitude remains same then the density remains same, the aircraft is same so the s remains same. So the only option you have is your lift will come down but if you do not want the lift to come down because you want to maintain level flight you have to go for a higher c l. In other words you must change the angle okay. So the angle of attack at which you fly is a function of the velocity at which you are flying for level flight. So the aircraft is going to fly at a lower angle of attack at higher speeds sorry yeah and at a higher angle of attack for lower speed but you know that there is a limitation you cannot keep on increasing the angle of attack because you will hit the stalling value. So that is how limits are imposed. You cannot fly lower than a particular speed because you will stall. So whether you have power available more than power required does not matter you cannot fly because you will not be having lift equal to weight. Remember for level flight both conditions have to be met you have to have lift also equal to weight and thrust also equal to drag. So you may have enough thrust with you at low speeds to overcome the drag but you may not have the capacity to maintain level flight okay. So now let us go inside the cockpit and let us have a look at how pilots are going to do this. The pilots do not have any angle of attack meter they do not have any way of knowing which angle we should fly. They fly with reference. So let us see how they do it okay. So essentially for the pilot you have a cockpit which gives you a view outside and in the outside zone there is something called as a horizon. This horizon should be maintained horizontal because if the horizon is changing it means you are not flying level you are flying at angle you are rolling and then there is a nose in the aircraft now I am talking about small aircraft something like the aircraft used by general aviation aircraft small aircraft they will have some kind of a reference point and the aircraft say the nose or there is one more reference point called as a spinner. What is meant by a spinner do you know see in front of the propeller you always have a small conical projection that is called as a spinner.  So the spinner is a fixed item it spins with the propeller so it remains relatively at a fixed location so that can also be my reference point. For the pilot study level flight will occur when you maintain a constant gap between a reference point on the aircraft say the spinner or the nose and a reference point in the field of view or in the horizon let us say there is a there is a building or a church which is quite far away so if you maintain that gap you are flying level so let us see a short video taken from a pilot training manual on how they do it it is a very interesting video. Straight and level flight in order to fly the aircraft straight we first of all select a reference point towards which will fly we keep the wings level with the horizon using aileron we keep the aircraft in balance using the rudder if the ball went to the right right rudder will be required ball to the left left rudder will be required to bring the ball back to the center to fly the aircraft level we need first of all to select the level flight power. Remember when you are saying level flight you also do not want to have a flight like this it should be straight and level straight study level technically speaking a flight which is like this is also straight and level but that is not what we are looking at so therefore the cockpit has an instrument called as a turn and bank indicator where there is a small black colored ball which is floating in a fluid and if the aircraft goes banking then the ball goes outside a small socket. So the pilot brings the ball back in the socket by controlling the ailerons. Similarly there is a problem with the yaw actually they use the rudder. Similarly there is a you will see that very soon they will show you a video in flight. Combined with the correct level flight attitude and that is the distance between the spinner and the horizon now as long as the power is set correctly and the attitude is set correctly and the aircraft is in trim the aircraft will maintain level flight which can be confirmed by reference with the altimeter. So there are three things you have to maintain the correct power the correct attitude so that the gap between a fixed object here and in this horizon remains constant and also you have to trim the aircraft correctly but now my question is many people don't understand the meaning of trimming the aircraft. What do you mean by trimming the aircraft or when can we assume the aircraft to be in a trimmed condition can someone define when is the aircraft trimmed. When the center of gravity is slightly shifted then we just vary the horizontal at the tail horizontal stabilizer by some angle and that is known as trim to make the aircraft. See what you are saying is what an engineer does to the aircraft so that it can be trimmed I do not deny what you say and that is only one thing that is only a horizontal trim or trimming in pitch you do it by adjusting the tail my question is what is trim when do we say that the aircraft is in a trimmed condition yeah maybe can you answer. So when all the control surfaces neutral position is maintained neutral position correct so that means okay now let me go one step further when is the neutral position in an aircraft maintained. So before flight it is not referred to zero there is on the flight requirement control surfaces set at some adjustments some adjustments may be up or down so that initial position has to be maintained. So again the same thing see you are talking from the ingenious point of view what do you do to trim the aircraft is you adjust the control surfaces to some position okay but my question is not what you do but when does the pilot feel that the aircraft is trimmed. When he removes the stick they should not be any when he leaves the strict condition correct. That is important in a stick free condition there should be no net movement that is what I am looking for in a stick free condition there should be no net movement if the pilot has to apply some control forces to ensure that there is no movement it is not trimmed it is untrimmed condition you are forcibly adjusting it but so you have a trim wheel in the aircraft you have trim tabs behind all that is there but when everything is done you fly hands free the aircraft flies without any net yawing moment net pitching moment net rolling moment unless there are weather disturbances then of course they will come okay but if it is a stable aircraft which we will see after a few lectures it will almost come back. So from the pilot's point of view trimming means removing all imbalances which may be there great. So now let us see inside the cockpit now. Okay we are now going to look at straight level flight let us divide this into two first of all level flight to fly the aircraft level two requirements first the level flight power correctly set second the level flight attitude you can see where the horizon is cutting through the wind stream that is the position in this aircraft for level flight if I were to select slightly too low a nose attitude you can see the horizon climbing in the wind stream the nose pointing towards the ground and we begin to lose height if I have slightly too high a nose attitude the converse happen the nose pointing towards the ground and we begin to this instrument is the vertical speed indicator which we saw in the instrument and it is not stationary it is showing some vertical speed which means the aircraft is going in this case it is going down okay so that should not happen in level flight lose height if I have slightly too high a nose attitude the converse happens the aircraft begins to climb it is climbing so neither this attitude nor that too low a nose attitude is correct because we know that at this power setting that is the correct level flight attitude all right let us now talk about straight flight to fly the aircraft straight again two requirements the first one to keep the wings level it is no use having the wings like that were turned so we got to keep the wings level to the horizon and the second requirement is to keep the aircraft in balance that little black ball needs there you see now if you just focus your attention on this instrument here okay this instrument shows the aircraft as a reference and these two dashes are the horizontal line and there is this ball which is visible here as slowly moving out why is it moving out because the aircraft is not level it is slightly banked towards the right side so for the pilot it is difficult to orient in the cockpit which is horizontal so the pilot looks at this particular instrument specifically looks at the two ticks at the end of the instrument and the reference line of the aircraft they should be in the same line or visually appealing will be there is a small ball here it should be centered so the pilot will simply do the controls so that the ball is centered you will see that now be kept central there bring it firm that we're flying straight select a reference point and if you look ahead I'll just slow the nose so you can see it I've got a beautiful chimney in view and as long as that chimney remains in my 12 o'clock position I know that I'm flying straight further confirmed of course by looking in the directional gyro indicator to confirm that we are maintaining the heading we require so in a nutshell that's flying straight and level okay so for the pilot flying straight and level is little bit different from the foreign engineer alright so what are the objectives of level flight you have to establish a few things and then you have to maintain first is you establish the correct amount of power so that your power required is equal to power available you are at the right altitude and you maintain that okay and then you trim or balance the aircraft so after you establish then you have to maintain it because as a function of time you cannot have sinking or raising so for that you have to do three things one is look outside check the reference on the aircraft and in the horizon and maintain a constant gap between them and look at the instruments in the cockpit which are going to help you so now suppose you fly in the nighttime and you want to fly now can you imagine what would be the requirement for say a military pilot sir in every case the horizon may not be state it might be in there is anyone right so in that case how the pilot could that's a good question I wish you had asked me this question so now let us see what other people think his point is very much valid number one the horizon may not be visible nighttime no horizon secondly the horizon may not be so see it depends on how you define horizon so horizon is defined as that line which is remaining almost flat and constant in the view so either you have a horizon or you don't have it cannot pilot can't know sir if the pilot can see something that is horizontal and remaining horizontal that is the horizon if the pilot cannot then the pilot flies by instrument that exactly what I was saying nighttime flight flight over an ocean where the horizon is very far away or may not be available to you flight in against a black background there is no horizon now in those conditions the pilot flies by instruments because the instruments in the cockpit are independent of the horizon there is a turn on bank indicator there is a climb into VSI vertical speed indicator so you look at the vertical speed indicator there should be no vertical speed visible the ball should be in the center that means you are flying horizontal and level look at the altimeter that should not be changing that's all that's the only thing available but can you think of a situation what could be the requirement for a military pilot to maintain steady horizontal flight in which scenario do you expect this to happen for a military pilot pitch darkness no horizon can you think of a scenario in other words why is it important for us to study and to know about study horizontal flight so most of the armament that you launch especially when you are launching precision bombs which have to be guided it is desirable that there is no great change in the acceleration of the aircraft otherwise there have to be more corrections made in the aiming systems so study level flight is a very useful requirement even for military pilots not only for transport pilots ok just to move on and to increase the scope slightly let us look at now helicopters they also maintain study level flight yes or no we see them flying across our campus regularly generally they are in study level flight in a helicopter it is very important that the angle of the blade is continuously changed as it goes across otherwise what will happen is when the blade is advancing there is some air coming from the front ok so the advancing blade is going to get more relative velocity compared to the retreating blade so therefore across the rotation of the blade of a helicopter the angle has to be changed continuously so in the retreating position or when in the in the rearward motion the angle is going to come down in the forward motion the angle is going to go up and this is going to happen in the entire cycle so this particular change in the angle which is cyclic is obtained by the swash plate mechanism you can read about it yourself and the collective is the collective or the total one but now suppose I want to move the helicopter forward then I cannot have the same angle in all the blades collectively because that will give only vertical motion now what I want to do is I want to tilt the vector forward so for that I have to give a cyclic pitch so there is a cyclic pitch lever with that the angle of attack is changed cyclically so that the net force is forward and the helicopter can move forward that is how the helicopters function ok now look at the balance of forces in the helicopter it is similar to that in the aircraft you have a drag force acting on the main rotor that is dm because it is a rotating blade you have a drag force acting on the body which is d and you have a drag force acting on the tail rotor which is t so the thrust that you produce by tilting the rotor blades forward should be equal to dt plus dm plus d and the lift that you produce again rotor blades produce lift they have to be such that lift is equal to weight and now you may also again have moments because they may not be balanced at the same point so then the same trimming mechanisms have to be brought into place in some cases the flat tail on the back that you see here this tail this tail actually helps it helps in creating this balance that is why we have a small horizontal tail fixed on a helicopter so that the moment can be continuously balanced but further trimming can be obtained by adjusting yeah this particular diagram I have already explained to you few minutes ago this shows the working of the helicopter so this you can bought at leisure okay the last thing we will do today is to look at what happens to the thrust and the power required and available as you change the altitude of the aircraft so the conditions do not remain same at all altitude so this is just a small explanation very simple explanation so at low altitude at sea level you have many higher density of air so you have many more molecules of air available right at a higher level density becomes less so let us see the effect so as the height increases as the air density reduces and as the so the paradise right drag also reduces at higher altitude you have lower value of air density because density is lower the parasite drag is going to be lower so at sea level if you have a wing which has got some particular relative flow you have some induced drag an arrow which is because it is being pushed back at the higher altitude you will find that you have to fly at a larger angle because density is less so what you have with you only is density and velocity the two things are available to you to change so let us see the effect so as the height increases the density reduces lift reduces so therefore you have to make a higher angle of attack to balance the same weight and therefore the induced drag is going to go up because you are going to be at a higher angle of attack so if you look at now what happens at various altitudes so you are at some altitude 5,000 meters 10,000 meters so notice how the lines are changing the thrust available line is coming down and the thrust required line is going up and tilting to the right why does it tilt to the right for that you have to do the numerical calculations which we will do in the tutorial probably to know how it changes so the net important point is that the gap between the power available the blue line for a thrust available blue line and the thrust required black line this gap keeps reducing and the velocity at which this gap is maximum also keeps changing so at sea level you have that point at a higher speed you have that point 10,000 15,000 so the numerical value of velocity at which the difference between the thrust available and thrust required is maximum increases or shifts as the altitude increases so you have to fly faster and faster to be at the maximum gap so now what will happen is can you imagine a time will come or an altitude will come at which these two lines will be intersecting only at one point so that velocity is the velocity that you need to fly if you want to fly at a particular altitude and that is the ceiling after that the velocity after that the power thrust required will be more than thrust available so you cannot now the same thing we look at in the power pattern now so in the power pattern also if you see the power available is reducing in the book by Anderson the power available was shown as a straight line and I said it is a simplification this is the real story is not a straight line it is a slightly curved line which we ignore and make it assumption that it is a straight line you can see now that a similar story is happening and once again the velocity at which the power gap is maximum is also increasing slightly so once again the time will come when the power available equal to power required you cannot go above that okay so this is just to tell you how the power curve changes so one simple approximation will be that the power required at an altitude is the power required at sea level times the root of the density ratio this is a simple approximation and many engines follow this particular rate also and once again from the same textbook I have copied and included here charts which are similar to what we saw so you can see that at lower altitude this is the power available this is the power required the maximum occurs at this particular speed at higher altitude sorry at sea level this is the value so at sea level you have a velocity and at altitude you have a velocity so the maximum velocity at which you fly it is a function of the difference between the power available and power required and the same thing for propeller aircraft okay now this is something which I want to leave it to you for self-study actually we already discussed it this is the ceiling calculation okay.