I don't know if I'd be able to give you a reasonable answer here. It is all dependent on how familiar you are with how scheduling algorithms work and your level of comfort with C.
The latest kernel scheduler is a "tickless" scheduler which is supposed to be more fair (see: http://en.wikipedia.org/wiki/Completely_Fair_Scheduler). If I had to put a time frame on it, I'd say you would need to allot at least a few months to getting to the level where you can actually make changes inside the kernel and being able to test them. As far as getting a working new scheduler, that would probably take a few more months. You should also take into consideration the simulation aspects involved with testing schedulers. Typically schedulers allow applications to run for a few milliseconds before swapping them off the core. However, in simulation, simulating a few milliseconds of time can take quite a long time. It might require days or weeks of simulation before you see enough context switches in order to evaluate your algorithm. I don't want to try to discourage you, but I just want you to be fully aware that this is a very tough problem. On Tue, Apr 24, 2012 at 11:41 PM, wael Amr <[email protected]> wrote: > Hi Eng Paul, > > Thanks for your reply. > So would you give me an estimation of time it needs to implement a > scheduling algorithm in the Linux kernel(as i have very limited time)? > > Concerning the assumption that you mentioned: > Yes ,the assumption is correct > > Thank you for your time and help. > Best Regards > Wael Amr > > > On Tue, Apr 24, 2012 at 7:51 PM, Paul Rosenfeld <[email protected]>wrote: > >> Is modifying the Linux kernel "easy"? No, unfortunately it is not. Modern >> operating systems are extremely complex and have evolved over decades to >> try to get the best performance possible -- the Linux kernel is no >> exception. >> >> When you say "thread" I'll assume you mean hardware thread, since a >> single threaded benchmark will be a single software thread (linux makes no >> distinction between a thread and a process). If this assumption is correct >> then it is pretty simple to pin a particular benchmark to a particular >> hardware thread using some OS affinity calls. You can search for "taskset" >> or "sched_setaffinity" to find more details. >> >> On Tue, Apr 24, 2012 at 12:08 PM, wael Amr <[email protected]>wrote: >> >>> Hi all, >>> >>> Really many great thanks for your time and support. >>> As i wrote before,i need to implement scheduling algorithm for tasks >>> among multicore to decrease miss rate for the shared cache. >>> Is modifying in the linux kernel difficult and taking large time ? >>> or >>> Is it easy ? >>> >>> I am asking this question because i used SESC simulator and it took >>> large time to understand and modify ,then after that i found that SESC >>> simulator has NO multiprogramming,so i am searching for another simulator >>> and i have limited time to finish my research. >>> >>> Second question about the mapping of the benchmarks to the threads: >>> Are the threads sharing the same benchmark ? >>> or >>> There is no sharing ,for example : >>> We have 5 threads and 5 benchmarks,so we can assign thread 0 to the >>> first benchmark,then we can assign thread 1 to the second one and so on. >>> >>> I would appreciate if you could reply at your earliest convenience. >>> Thank you in advance for your help. >>> Best Regards >>> Wael Amr >>> >>> On Mon, Apr 23, 2012 at 6:58 AM, avadh patel <[email protected]>wrote: >>> >>>> >>>> On Sun, Apr 22, 2012 at 8:55 PM, wael Amr <[email protected]>wrote: >>>> >>>>> Hi Eng.Avadh, >>>>> >>>>> Thanks a lot for your support. >>>>> please i have another question. >>>>> >>>>> is it possible to run this simulator on Mac OS which is unix based? >>>>> >>>>> I have never tried compiling/running Marss under Mac OS. Though QEMU >>>> is designed to work on all platforms but we have never tested it. >>>> Has anyone on mailing-list ever tried running Marss under Mac OS? >>>> May be you can try and report the issues/patches!! >>>> >>>> - Avadh >>>> >>>> Thank in advance for your time and support. >>>>> Best Regards >>>>> Wael Amr >>>>> >>>>> >>>>> On Sun, Apr 22, 2012 at 7:03 PM, avadh patel <[email protected]>wrote: >>>>> >>>>>> >>>>>> >>>>>> On Sun, Apr 22, 2012 at 9:29 AM, wael Amr >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Really Great Thanks for your reply and support. >>>>>>> Actually i have a confusion . >>>>>>> Is the linux kernel is represented by certain class in the Marss >>>>>>> simulator ? >>>>>>> or >>>>>>> Do you mean the real linux kernel of the used linux platform (e.g. >>>>>>> ubantu ,fedora,...) as i am using MAC OS? >>>>>>> >>>>>>> Yes its a real linux kernel. Because Marss boots a Virtual Machine >>>>>> that contains a full linux distribution including a kernel. >>>>>> If you are not much familiar with Qemu and VM, then checkout how Qemu >>>>>> works. That will give an idea what Marss simulates. >>>>>> >>>>>> - Avadh >>>>>> >>>>>> >>>>>>> Thank you in advance for your time. >>>>>>> Thanks >>>>>>> Best Regards >>>>>>> Wael Amr >>>>>>> >>>>>>> On Sun, Apr 22, 2012 at 5:01 PM, avadh patel <[email protected]>wrote: >>>>>>> >>>>>>>> >>>>>>>> On Sat, Apr 21, 2012 at 9:28 AM, wael Amr <[email protected] >>>>>>>> > wrote: >>>>>>>> >>>>>>>>> Hello All, >>>>>>>>> >>>>>>>>> I am a master student and working on a research for scheduling >>>>>>>>> tasks among multicore platforms to decrease miss rate among second >>>>>>>>> level >>>>>>>>> shared cache. >>>>>>>>> So i am investigating in Marss to check if i can use Marss to >>>>>>>>> implement the scheduling algorithm for arranging the tasks or not. >>>>>>>>> >>>>>>>>> Marss can be suitable simulator environment for your project. You >>>>>>>> can easily setup custom linux kernel in Marss. >>>>>>>> Checkout this wiki page on using Marss with modified linux kernel: >>>>>>>> http://marss86.org/~marss86/index.php/Linux_Kernel_Development >>>>>>>> >>>>>>>> There is one catch that currently Marss doesn't implement MSR >>>>>>>> counters. So if you are looking to use those in your project you might >>>>>>>> have to implement them or use ptlcall interface to communicate between >>>>>>>> Marss and kernel. >>>>>>>> >>>>>>>> - Avadh >>>>>>>> >>>>>>>> So please would anyone help me or give me any opinion/hint in this >>>>>>>>> point ? >>>>>>>>> >>>>>>>>> Any help will be really highly appreciated. >>>>>>>>> >>>>>>>>> Thank you in advance for time and cooperation. >>>>>>>>> >>>>>>>>> Best Regards >>>>>>>>> Wael Amr >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> http://www.marss86.org >>>>>>>>> Marss86-Devel mailing list >>>>>>>>> [email protected] >>>>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> http://www.marss86.org >>>>>>> Marss86-Devel mailing list >>>>>>> [email protected] >>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> http://www.marss86.org >>>>> Marss86-Devel mailing list >>>>> [email protected] >>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> http://www.marss86.org >>> Marss86-Devel mailing list >>> [email protected] >>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel >>> >>> >> > > _______________________________________________ > http://www.marss86.org > Marss86-Devel mailing list > [email protected] > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel > >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
