On Sat, Mar 25, 2017 at 6:07 AM, Gedare Bloom <ged...@rtems.org> wrote:
> Work on shaping your proposal document and start to plan the work you > would do during the summer. This is the best way for me to collaborate is > if you begin writing out your ideas in sufficient detail that I can > understand and provide feedback based on where you are at. > +1 > > On Fri, Mar 24, 2017 at 11:26 AM, Abhimanyu Rawat < > h2015...@pilani.bits-pilani.ac.in> wrote: > >> Hello Dr. Bloom, >> >> I have contacted to the past contributors, Peter and I will discuss >> PowerPC and further support, next week, in the meantime, I am going through >> PowerPC code and how I can build with the existing system a new bsp code >> for MMU/MPU support. I will complete my application next week. >> >> In the meantime, any suggestions from your side are most welcome. >> >> >> On Wed, Mar 22, 2017 at 8:57 PM, Gedare Bloom <ged...@rtems.org> wrote: >> >>> >>> >>> On Wed, Mar 22, 2017 at 11:13 AM, Abhimanyu Rawat < >>> h2015...@pilani.bits-pilani.ac.in> wrote: >>> >>>> Indeed, PowerPC code is somewhat developed, would you recommend if >>>> there are some specific features in PowerPC that I should revisit? As this >>>> is little confusing as some work has been done on exception handler, page >>>> tables, cache already, so what should I target next and what to modify >>>> first? Past developer of the PowerPC support might help if you would >>>> connect me to? >>>> ᐧ >>>> >>>> I've CC'd some of the folks who previously worked on this topic. So >>> perhaps they have input for you. >>> >>> I think the important thing is that when we design a framework that it >>> is flexible enough to accommodate the many varieties of memory management >>> hardware. >>> >>> >>>> *Closing with thank you and warm Regards,* >>>> >>>> *Abhimanyu Rawat* >>>> *M.E. Computer Science, * >>>> *CS/IS Department, BITS Pilani, Pilani Campus* >>>> *Email - h2015...@pilani.bits-pilani.ac.in >>>> <h2015...@pilani.bits-pilani.ac.in> / abhimanyura...@yahoo.com >>>> <abhimanyura...@yahoo.com>* >>>> *Phone. 08930399302 (call/Whatsapp), 09466899302* >>>> >>>> ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ >>>> >>>> On Wed, Mar 22, 2017 at 8:29 PM, Gedare Bloom <ged...@rtems.org> wrote: >>>> >>>>> >>>>> >>>>> On Wed, Mar 22, 2017 at 10:07 AM, Abhimanyu Rawat < >>>>> h2015...@pilani.bits-pilani.ac.in> wrote: >>>>> >>>>>> >>>>>> On Wed, Mar 22, 2017 at 7:17 PM, Gedare Bloom <ged...@rtems.org> >>>>>> wrote: >>>>>> >>>>>>> Please prefer to try to keep general GSoC / RTEMS project >>>>>>> discussions on the mailing list. Direct e-mail is ok but inefficient in >>>>>>> many cases and should only be preferred for communciations of a >>>>>>> personal or >>>>>>> private matter. >>>>>>> >>>>>>> On Wed, Mar 22, 2017 at 5:33 AM, Abhimanyu Rawat < >>>>>>> h2015...@pilani.bits-pilani.ac.in> wrote: >>>>>>> >>>>>>>> >>>>>>>> On Fri, Mar 17, 2017 at 9:25 PM, Gedare Bloom <ged...@rtems.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Mar 16, 2017 at 1:05 PM, Abhimanyu Rawat < >>>>>>>>> h2015...@pilani.bits-pilani.ac.in> wrote: >>>>>>>>> >>>>>>>>>> Hello Dr. Bloom, >>>>>>>>>> >>>>>>>>>> Sorry for writing after a big gap( was busy with a product >>>>>>>>>> integration), although I found time to go through the pointers you >>>>>>>>>> put >>>>>>>>>> together for me, thanks they were really helpful in getting an idea >>>>>>>>>> about >>>>>>>>>> the project and how to process everything in time. >>>>>>>>>> >>>>>>>>>> Gaps are normal and acceptable (until you are getting paid for >>>>>>>>> work :)). You should also expect to have gaps in responses from >>>>>>>>> developers >>>>>>>>> on the mailing list, since we are also generally volunteering. >>>>>>>>> >>>>>>>>> >>>>>>>>>> I noticed that all the existing work on MMU is not moving very >>>>>>>>>> fast like other supporting components for RTEMS, last year too no >>>>>>>>>> one was >>>>>>>>>> selected to do MMU project #2904. I know only one guy applied but the >>>>>>>>>> proposal was not quite promising. But trust me, all that doesn't >>>>>>>>>> make it >>>>>>>>>> any less desirable for me to take it. Now, I have a few questions: >>>>>>>>>> >>>>>>>>>> I would not recommend judging the priority/value of a proposed >>>>>>>>> project based on whether or not it was done in the past. Definitely >>>>>>>>> discuss >>>>>>>>> with mentors, etc. This project area is a good, long-term investment >>>>>>>>> for >>>>>>>>> RTEMS, but it does move slowly. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Mar 10, 2017 at 1:51 AM, Gedare Bloom <ged...@rtems.org> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, Mar 9, 2017 at 2:14 PM, Abhimanyu Rawat < >>>>>>>>>>> h2015...@pilani.bits-pilani.ac.in> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hello folks, >>>>>>>>>>>> >>>>>>>>>>>> I am Abhimanyu Rawat, a Computer Science Masters degree student >>>>>>>>>>>> from BITS Pilani Campus, India. I found Memory Protection project >>>>>>>>>>>> #2904 <https://devel.rtems.org/ticket/2904> very interesting >>>>>>>>>>>> and vital for the the RTEMS. Among the lots of projects listed on >>>>>>>>>>>> the ideas >>>>>>>>>>>> page, Memory Protection draws me to RTEMS as it's a very >>>>>>>>>>>> challenging >>>>>>>>>>>> project and I would thoroughly enjoy working on it. I am a really >>>>>>>>>>>> enthusiastic person who would like to contribute to the project. I >>>>>>>>>>>> have >>>>>>>>>>>> previous experience in C, C++ and Python etc. At present I am an >>>>>>>>>>>> intern at >>>>>>>>>>>> EMC ^2 where I am working on DataDomain Operating system, building >>>>>>>>>>>> configuration tool for the latest DDOS software update. I have >>>>>>>>>>>> also lead a >>>>>>>>>>>> BITS-Stanford inter-university project, where my team worked on >>>>>>>>>>>> Django >>>>>>>>>>>> based project with an inbuilt authorization tool + chat >>>>>>>>>>>> application etc. I >>>>>>>>>>>> usually help my friends with their projects as well. >>>>>>>>>>>> >>>>>>>>>>>> When does your internship complete, and when does your school >>>>>>>>>>> year begin again? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> As required, I went through the initial brief about the project >>>>>>>>>>>> and I think it would be a valuable addition to RTEMS. Also, I have >>>>>>>>>>>> completed the https://devel.rtems.org/wiki/GSoC/GettingStarted, and >>>>>>>>>>>> configured and Built RTEMS for SPARC/erc32. Subsequently, I have >>>>>>>>>>>> the >>>>>>>>>>>> snapshot of the terminal showing my name and the GSOC text as >>>>>>>>>>>> pictured >>>>>>>>>>>> here >>>>>>>>>>>> <https://devel.rtems.org/attachment/wiki/GSoC/GettingStarted/SPARC-SIS-HelloWorld-Modded.png>. >>>>>>>>>>>> Kindly tell me how selectively pointed towto send the proof of the >>>>>>>>>>>> terminal and the diff file as required. >>>>>>>>>>>> >>>>>>>>>>>> Send to me by email is fine. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> It would be great if you can give me some pointers about the >>>>>>>>>>>> structure of the project and the direction I should pursue. >>>>>>>>>>>> >>>>>>>>>>>> Have a look at the current approach taken to provide low-level >>>>>>>>>>> support for the MMUs in the ARM bsps. You can find this looking in >>>>>>>>>>> the >>>>>>>>>>> source tree via c/src/lib/libbsp/arm/* with most of the relevant >>>>>>>>>>> parts in >>>>>>>>>>> the shared subdirectory there, where each BSP defines a table of >>>>>>>>>>> statically-configured MMU initialization. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> You selectively pointed towards the c/src/lib/libbsp/arm/* shared >>>>>>>>>> subdirectory where some BSP's has low level code for MMU >>>>>>>>>> configuration, I >>>>>>>>>> found ome cache code too. And trying digging deep to build a common >>>>>>>>>> understanding of different BSP MMU code. The code initally is quite >>>>>>>>>> hard to >>>>>>>>>> understand but as a unit what task is taking place is I can >>>>>>>>>> understand >>>>>>>>>> like, data cache and line cleaing etc. Therefore I would request you >>>>>>>>>> to >>>>>>>>>> provide me a documented code review or process guide( if >>>>>>>>>> available) so that I can develop something to test the MMU code >>>>>>>>>> changes/patches, otherwise I will have to brute force the search. As >>>>>>>>>> from >>>>>>>>>> this point I want to move fast and reflect the my progress. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> I recommend that you start by writing a blog post about your >>>>>>>>> understanding of what is implemented there. Look in the other BSPs to >>>>>>>>> see >>>>>>>>> what, if any, MMU code they have. >>>>>>>>> >>>>>>>>> Sure, setting up a medium blog to write about the bsp underlying >>>>>>>> code related to memory related operations. >>>>>>>> >>>>>>>>> Cache cleaning/invalidating is often tied with MMU state changes. >>>>>>>>> >>>>>>>>> >>>>>>>>>> This is where the prior work has pretty much left off. Remaining >>>>>>>>>>> items in this project area include: >>>>>>>>>>> * Making a uniform approach to MMU/MPU setup across architectures >>>>>>>>>>> >>>>>>>>>> It seems nice to have a low level design which can point out the >>>>>>>>>> mutual modules such as initialising the registers, stack and memory >>>>>>>>>> lines >>>>>>>>>> etc. For this I think underying functionality have to be completed >>>>>>>>>> first or >>>>>>>>>> complete the remaining pieces in existing code and then move bottom >>>>>>>>>> up. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> The underlying functionality exists for at least cp15-based ARM. >>>>>>>>> Providing the functionality for another BSP family would be a good >>>>>>>>> place to >>>>>>>>> start. >>>>>>>>> >>>>>>>>> >>>>>>>>>> * Supporting dynamic changes to MMU/MPU configurations >>>>>>>>>>> * Leveraging dynamic MMU/MPU enforcement to create a mid-level >>>>>>>>>>> memory management layers. Various proposals have been designed and >>>>>>>>>>> implemented in the past that can be studied. >>>>>>>>>>> >>>>>>>>>> When you say dynamic changes, it means application level memory >>>>>>>>>> proection, space quota management etc. ? I know you should be having >>>>>>>>>> a full >>>>>>>>>> list, so l am willing to hear all that and then decide which work >>>>>>>>>> should be >>>>>>>>>> done first and how I propose to do it. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Dynamic here means the MMU entries can be changed at run-time >>>>>>>>> after initialization. This is a building block for implementing >>>>>>>>> higher-level services such as application-level memory protection and >>>>>>>>> kernel-level APIs for memory management. >>>>>>>>> >>>>>>>>> >>>>>>>>>> * Creating generally useful memory protection schemes such as >>>>>>>>>>> per-task stack protection that can be enabled by applications with >>>>>>>>>>> simple >>>>>>>>>>> "switch it on" type of logic. >>>>>>>>>>> >>>>>>>>>> * Creating an application-layer interface for memory protection >>>>>>>>>>> management at a finer granularity / with more application-level >>>>>>>>>>> logic to >>>>>>>>>>> control than the "generally useful" approaches would need. >>>>>>>>>>> >>>>>>>>>>> Ok this is exciting stuff that can be pushed first, the memory >>>>>>>>>> block or segement(or whatever you say to a chunk but mostly I went >>>>>>>>>> through >>>>>>>>>> thesis material online which denotes it as in different terms/name ) >>>>>>>>>> access >>>>>>>>>> related control can be hacked together to provide the enclaved type >>>>>>>>>> of >>>>>>>>>> execution for the application task. We can discuss more about it and >>>>>>>>>> how >>>>>>>>>> much existing code base so far support this proposed project area. >>>>>>>>>> >>>>>>>>>> I prefer memory region to refer to a generic "Base+Offset" >>>>>>>>> contiguous area of memory. We have discussed terminology quite often >>>>>>>>> in the >>>>>>>>> past. Reach out to Hesham to get some more details. >>>>>>>>> >>>>>>>> >>>>>>>>> We can't do application-level memory protection without a good >>>>>>>>> understanding of the intermediate layers. We can start to design an >>>>>>>>> API, >>>>>>>>> but the API is not mergeable until there is a generic layer that is >>>>>>>>> not >>>>>>>>> tightly bound to the BSP or even CPU layers. >>>>>>>>> >>>>>>>> >>>>>>>> In case of arm-cp15 it's underlying fucntionality are far more >>>>>>>> developed(i.e. initialization, interrupt handling, underlying tlb >>>>>>>> update >>>>>>>> after fage faults etc.) than the rest of the bsp's, so I think we can >>>>>>>> start >>>>>>>> to design an API for application-level memory protection. This way we >>>>>>>> can >>>>>>>> have atleast one fully functional bsp for arm-cp 15, whose prototype >>>>>>>> can we >>>>>>>> can later use to speed up the development You think it can be a good >>>>>>>> proposal or shall I go with other bsp underlying support first? >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> I'm concerned that any mid-level/high-level framework built on top >>>>>>> of the existing low-level support for arm-cp15 will be too rigid to work >>>>>>> with less feature-ful BSPs/MMU/MPU combinations. It would be good to >>>>>>> have >>>>>>> another one or two kinds of MMU/MPU supported so that the upper layers >>>>>>> can >>>>>>> be more thoughtfully designed. >>>>>>> >>>>>>> >>>>>> I agree with your approach of having more than one type of bsp's >>>>>> with MMU/MPU support, so which one should I take on ? I mean I can work >>>>>> on >>>>>> AT91RM9200 of ARM family, or you would suggest other archiitecture >>>>>> like(PowerPC) ? >>>>>> >>>>>> PowerPC should be good. That was one of the targets worked on >>>>> previously, so it should not be too difficult. >>>>> >>>>> >>>>>> I look forward, to hear what is your take on them, and last but not >>>>>>>>>> the least, thanks for the warm reply, it already makes me feel home >>>>>>>>>> with >>>>>>>>>> the community. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Overall, I look forward to working with the community and >>>>>>>>>>>> improving my skills by actively contributing to the project(in >>>>>>>>>>>> long run >>>>>>>>>>>> also). >>>>>>>>>>>> >>>>>>>>>>>> *Closing with thank you and warm Regards,* >>>>>>>>>>>> >>>>>>>>>>>> *Abhimanyu Rawat* >>>>>>>>>>>> *M.E. Computer Science, * >>>>>>>>>>>> *CS/IS Department, BITS Pilani, Pilani Campus* >>>>>>>>>>>> *Email - h2015...@pilani.bits-pilani.ac.in >>>>>>>>>>>> <h2015...@pilani.bits-pilani.ac.in> / abhimanyura...@yahoo.com >>>>>>>>>>>> <abhimanyura...@yahoo.com>* >>>>>>>>>>>> *Phone. 08930399302 (call/Whatsapp), 09466899302* >>>>>>>>>>>> >>>>>>>>>>>> ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ >>>>>>>>>>>> ᐧ >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> devel mailing list >>>>>>>>>>>> devel@rtems.org >>>>>>>>>>>> http://lists.rtems.org/mailman/listinfo/devel >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> ᐧ >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> ᐧ >>>>>> >>>>> >>>>> >>>> >>> >> > -- Hesham
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel