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

Reply via email to