All of lore.kernel.org
 help / color / mirror / Atom feed
* Distributed Process Scheduling Algorithm
@ 2016-02-15 16:05 Nitin Varyani
  2016-02-15 16:52 ` Henrik Austad
  0 siblings, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-15 16:05 UTC (permalink / raw)
  To: kernelnewbies

 Hi,
I am given a task to design a distributed process scheduling algorithm.
Current distributed OS are patch work over the linux kernels, that is, they
are responsible for load balancing through process migration but the
scheduling is taken care by the single machine linux kernels. My task is to
make the scheduling algorithm itself as distributed. That is a scheduler
itself makes a decision whether to migrate a task or to keep the task in
the current system.  I need some design aspects of how to achieve it.
Another thing which I want to know is that whether this job is possible for
a kernel newbie like me. Need urgent help.
Nitin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160215/d07a66fd/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-15 16:05 Distributed Process Scheduling Algorithm Nitin Varyani
@ 2016-02-15 16:52 ` Henrik Austad
  2016-02-16  4:48   ` Nitin Varyani
  0 siblings, 1 reply; 18+ messages in thread
From: Henrik Austad @ 2016-02-15 16:52 UTC (permalink / raw)
  To: kernelnewbies

On Mon, Feb 15, 2016 at 09:35:28PM +0530, Nitin Varyani wrote:
>  Hi,

Hi Nitin,

> I am given a task to design a distributed process scheduling algorithm.
> Current distributed OS are patch work over the linux kernels, that is, they
> are responsible for load balancing through process migration but the
> scheduling is taken care by the single machine linux kernels.

Hmm, are you talking about HPC clusters or other large machines here? I'm 
not familiar with this, so a few references to existing designs would be 
appreciated.

> My task is to make the scheduling algorithm itself as distributed. 

Apart from my comment below, it sounds like a really interesting project. 
Is this a research-project or something commercial?

> That is a scheduler itself makes a decision whether to migrate a task or 
> to keep the task in the current system.  I need some design aspects of 
> how to achieve it. Another thing which I want to know is that whether 
> this job is possible for a kernel newbie like me. Need urgent help. Nitin

Uhm, ok. I think this is _way_ outside the scope of Kernelnewbies, and it 
is definitely not a newbie project.

If you are really serious about this, I'd start with listing all the 
different elements you need to share and then an initial idea as to how to 
share those between individual systems. I have an inkling that you'll find 
out quite fast as to why the current kernel does not support this out of 
the box.

-- 
Henrik Austad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160215/8a8b01b8/attachment.bin 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-15 16:52 ` Henrik Austad
@ 2016-02-16  4:48   ` Nitin Varyani
  2016-02-16  5:13     ` Valdis.Kletnieks at vt.edu
  0 siblings, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-16  4:48 UTC (permalink / raw)
  To: kernelnewbies

No doubt it is really interesting. It is a research project. The project is
related to HPC clusters. I am as of now planning only to make the process
scheduling algorithm distributed. Linux has already implemented SMP using
Completely Fair Scheduler and I was thinking was of extending it for
distributed systems. Two things need to be added to it:
1) Sending process context via network
2) Maintaining a table at each node which stores the load of each remote
node. This table will be used to make a decision whether to send a process
context along the network or not. Thanks for your kind help.


On Mon, Feb 15, 2016 at 10:22 PM, Henrik Austad <henrik@austad.us> wrote:

> On Mon, Feb 15, 2016 at 09:35:28PM +0530, Nitin Varyani wrote:
> >  Hi,
>
> Hi Nitin,
>
> > I am given a task to design a distributed process scheduling algorithm.
> > Current distributed OS are patch work over the linux kernels, that is,
> they
> > are responsible for load balancing through process migration but the
> > scheduling is taken care by the single machine linux kernels.
>
> Hmm, are you talking about HPC clusters or other large machines here? I'm
> not familiar with this, so a few references to existing designs would be
> appreciated.
>
> > My task is to make the scheduling algorithm itself as distributed.
>
> Apart from my comment below, it sounds like a really interesting project.
> Is this a research-project or something commercial?
>
> > That is a scheduler itself makes a decision whether to migrate a task or
> > to keep the task in the current system.  I need some design aspects of
> > how to achieve it. Another thing which I want to know is that whether
> > this job is possible for a kernel newbie like me. Need urgent help. Nitin
>
> Uhm, ok. I think this is _way_ outside the scope of Kernelnewbies, and it
> is definitely not a newbie project.
>
> If you are really serious about this, I'd start with listing all the
> different elements you need to share and then an initial idea as to how to
> share those between individual systems. I have an inkling that you'll find
> out quite fast as to why the current kernel does not support this out of
> the box.
>
> --
> Henrik Austad
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160216/5955d21c/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16  4:48   ` Nitin Varyani
@ 2016-02-16  5:13     ` Valdis.Kletnieks at vt.edu
  2016-02-16  8:42       ` Dominik Dingel
  0 siblings, 1 reply; 18+ messages in thread
From: Valdis.Kletnieks at vt.edu @ 2016-02-16  5:13 UTC (permalink / raw)
  To: kernelnewbies

On Tue, 16 Feb 2016 10:18:26 +0530, Nitin Varyani said:

> 1) Sending process context via network

Note that this is a non-trivial issue by itself.  At a *minimum*,
you'll need all the checkpoint-restart code.  Plus, if the process
has any open TCP connections, *those* have to be migrated without
causing a security problem.  Good luck on figuring out how to properly
route packets in this case - consider 4 nodes 10.0.0.1 through 10.0.0.4,
you migrate a process from 10.0.0.1 to 10.0.0.3,  How do you make sure
*that process*'s packets go to 0.3 while all other packets still go to
0.1.  Also, consider the impact this may have on iptables, if there is
a state=RELATED,CONNECTED on 0.1 - that info needs to be relayed to 0.3
as well.

For bonus points, what's the most efficient way to transfer a large
process image (say 500M, or even a bloated Firefox at 3.5G), without
causing timeouts while copying the image?

I hope your research project is *really* well funded - you're going
to need a *lot* of people (Hint - find out how many people work on
VMWare - that should give you a rough idea)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160216/ce4a27b1/attachment.bin 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16  5:13     ` Valdis.Kletnieks at vt.edu
@ 2016-02-16  8:42       ` Dominik Dingel
  2016-02-16  9:46         ` Nitin Varyani
  2016-02-16 16:35         ` Valdis.Kletnieks at vt.edu
  0 siblings, 2 replies; 18+ messages in thread
From: Dominik Dingel @ 2016-02-16  8:42 UTC (permalink / raw)
  To: kernelnewbies

On Tue, 16 Feb 2016 00:13:34 -0500
Valdis.Kletnieks at vt.edu wrote:

> On Tue, 16 Feb 2016 10:18:26 +0530, Nitin Varyani said:
> 
> > 1) Sending process context via network
> 
> Note that this is a non-trivial issue by itself.  At a *minimum*,
> you'll need all the checkpoint-restart code.  Plus, if the process
> has any open TCP connections, *those* have to be migrated without
> causing a security problem.  Good luck on figuring out how to properly
> route packets in this case - consider 4 nodes 10.0.0.1 through 10.0.0.4,
> you migrate a process from 10.0.0.1 to 10.0.0.3,  How do you make sure
> *that process*'s packets go to 0.3 while all other packets still go to
> 0.1.  Also, consider the impact this may have on iptables, if there is
> a state=RELATED,CONNECTED on 0.1 - that info needs to be relayed to 0.3
> as well.
> 
> For bonus points, what's the most efficient way to transfer a large
> process image (say 500M, or even a bloated Firefox at 3.5G), without
> causing timeouts while copying the image?
> 
> I hope your research project is *really* well funded - you're going
> to need a *lot* of people (Hint - find out how many people work on
> VMWare - that should give you a rough idea)

I wouldn't see things that dark. Also this is an interesting puzzle.

To migrate processes I would pick an already existing solution.
Like there is for container. So every process should be, if possible, in a container.
To migrate them efficiently without having some distributed shared memory,
you might want to look at userfaultfd.

So now back to the scheduling, I do not think that every node should keep track
of every process on every other node, as this would mean a massive need for
communication and hurt scalability. So either you would implement something like work stealing or go for a central entity like mesos. Which could do process/job/container scheduling for you.

There are now two pitfalls which are hard enough on their own:
- interprocess communication between two process with something different than a socket
  in such an case you would probably need to merge the two distinct containers

- dedicated hardware

Dominik

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16  8:42       ` Dominik Dingel
@ 2016-02-16  9:46         ` Nitin Varyani
  2016-02-16 10:43           ` Nitin Varyani
  2016-02-16 16:35         ` Valdis.Kletnieks at vt.edu
  1 sibling, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-16  9:46 UTC (permalink / raw)
  To: kernelnewbies

According to my project requirement, I need a distributed algorithm so
mesos will not work. But work stealing is the best bargain. It will save
communication costs. Thankyou. Can you please elaborate on the last part of
your reply?

On Tue, Feb 16, 2016 at 2:12 PM, Dominik Dingel <dingel@linux.vnet.ibm.com>
wrote:

> On Tue, 16 Feb 2016 00:13:34 -0500
> Valdis.Kletnieks at vt.edu wrote:
>
> > On Tue, 16 Feb 2016 10:18:26 +0530, Nitin Varyani said:
> >
> > > 1) Sending process context via network
> >
> > Note that this is a non-trivial issue by itself.  At a *minimum*,
> > you'll need all the checkpoint-restart code.  Plus, if the process
> > has any open TCP connections, *those* have to be migrated without
> > causing a security problem.  Good luck on figuring out how to properly
> > route packets in this case - consider 4 nodes 10.0.0.1 through 10.0.0.4,
> > you migrate a process from 10.0.0.1 to 10.0.0.3,  How do you make sure
> > *that process*'s packets go to 0.3 while all other packets still go to
> > 0.1.  Also, consider the impact this may have on iptables, if there is
> > a state=RELATED,CONNECTED on 0.1 - that info needs to be relayed to 0.3
> > as well.
> >
> > For bonus points, what's the most efficient way to transfer a large
> > process image (say 500M, or even a bloated Firefox at 3.5G), without
> > causing timeouts while copying the image?
> >
> > I hope your research project is *really* well funded - you're going
> > to need a *lot* of people (Hint - find out how many people work on
> > VMWare - that should give you a rough idea)
>
> I wouldn't see things that dark. Also this is an interesting puzzle.
>
> To migrate processes I would pick an already existing solution.
> Like there is for container. So every process should be, if possible, in a
> container.
> To migrate them efficiently without having some distributed shared memory,
> you might want to look at userfaultfd.
>
> So now back to the scheduling, I do not think that every node should keep
> track
> of every process on every other node, as this would mean a massive need for
> communication and hurt scalability. So either you would implement
> something like work stealing or go for a central entity like mesos. Which
> could do process/job/container scheduling for you.
>
> There are now two pitfalls which are hard enough on their own:
> - interprocess communication between two process with something different
> than a socket
>   in such an case you would probably need to merge the two distinct
> containers
>
> - dedicated hardware
>
> Dominik
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160216/5e59d9fb/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16  9:46         ` Nitin Varyani
@ 2016-02-16 10:43           ` Nitin Varyani
  2016-02-16 11:22             ` Dominik Dingel
  0 siblings, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-16 10:43 UTC (permalink / raw)
  To: kernelnewbies

The essence of the discussion is that :

We can run each process in a container and migrate the container itself.
Migration can be done based on work stealing. As far as communication
between processes in different containers is concerned, can't we use
sockets?

On Tue, Feb 16, 2016 at 3:16 PM, Nitin Varyani <varyani.nitin1@gmail.com>
wrote:

> According to my project requirement, I need a distributed algorithm so
> mesos will not work. But work stealing is the best bargain. It will save
> communication costs. Thankyou. Can you please elaborate on the last part of
> your reply?
>
> On Tue, Feb 16, 2016 at 2:12 PM, Dominik Dingel <dingel@linux.vnet.ibm.com
> > wrote:
>
>> On Tue, 16 Feb 2016 00:13:34 -0500
>> Valdis.Kletnieks at vt.edu wrote:
>>
>> > On Tue, 16 Feb 2016 10:18:26 +0530, Nitin Varyani said:
>> >
>> > > 1) Sending process context via network
>> >
>> > Note that this is a non-trivial issue by itself.  At a *minimum*,
>> > you'll need all the checkpoint-restart code.  Plus, if the process
>> > has any open TCP connections, *those* have to be migrated without
>> > causing a security problem.  Good luck on figuring out how to properly
>> > route packets in this case - consider 4 nodes 10.0.0.1 through 10.0.0.4,
>> > you migrate a process from 10.0.0.1 to 10.0.0.3,  How do you make sure
>> > *that process*'s packets go to 0.3 while all other packets still go to
>> > 0.1.  Also, consider the impact this may have on iptables, if there is
>> > a state=RELATED,CONNECTED on 0.1 - that info needs to be relayed to 0.3
>> > as well.
>> >
>> > For bonus points, what's the most efficient way to transfer a large
>> > process image (say 500M, or even a bloated Firefox at 3.5G), without
>> > causing timeouts while copying the image?
>> >
>> > I hope your research project is *really* well funded - you're going
>> > to need a *lot* of people (Hint - find out how many people work on
>> > VMWare - that should give you a rough idea)
>>
>> I wouldn't see things that dark. Also this is an interesting puzzle.
>>
>> To migrate processes I would pick an already existing solution.
>> Like there is for container. So every process should be, if possible, in
>> a container.
>> To migrate them efficiently without having some distributed shared memory,
>> you might want to look at userfaultfd.
>>
>> So now back to the scheduling, I do not think that every node should keep
>> track
>> of every process on every other node, as this would mean a massive need
>> for
>> communication and hurt scalability. So either you would implement
>> something like work stealing or go for a central entity like mesos. Which
>> could do process/job/container scheduling for you.
>>
>> There are now two pitfalls which are hard enough on their own:
>> - interprocess communication between two process with something different
>> than a socket
>>   in such an case you would probably need to merge the two distinct
>> containers
>>
>> - dedicated hardware
>>
>> Dominik
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160216/7dc03d87/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16 10:43           ` Nitin Varyani
@ 2016-02-16 11:22             ` Dominik Dingel
  0 siblings, 0 replies; 18+ messages in thread
From: Dominik Dingel @ 2016-02-16 11:22 UTC (permalink / raw)
  To: kernelnewbies

On Tue, 16 Feb 2016 16:13:25 +0530
Nitin Varyani <varyani.nitin1@gmail.com> wrote:

It is common practice to shorten your answers to mailinglists.

> The essence of the discussion is that :
> 
> We can run each process in a container and migrate the container itself.
> Migration can be done based on work stealing. As far as communication
> between processes in different containers is concerned, can't we use
> sockets?
> 

Migration can be done based on work stealing sounds misleading. Maybe something like:
Nodes might apply the work stealing pattern by migrating the workload, encapsulated in the container.

That would be the idea, if that actually works and how it would perform is up to that experiment ;).

That is for new applications possible, but there may be "legacy" applications which rely on communication methods like shared memory, and pipes.

If this ends in an research paper I would like to read it.

Dominik

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16  8:42       ` Dominik Dingel
  2016-02-16  9:46         ` Nitin Varyani
@ 2016-02-16 16:35         ` Valdis.Kletnieks at vt.edu
  2016-02-17  4:51           ` Nitin Varyani
  1 sibling, 1 reply; 18+ messages in thread
From: Valdis.Kletnieks at vt.edu @ 2016-02-16 16:35 UTC (permalink / raw)
  To: kernelnewbies

On Tue, 16 Feb 2016 09:42:52 +0100, Dominik Dingel said:

> I wouldn't see things that dark. Also this is an interesting puzzle.

Just pointing out *very real* issues that will require solution, unless
you add strict bounds like "cannot be using network connections".

Heck, even open files get interesting.  How do you ensure that the
file descriptor returned by mkstemp() remains valid? (The *really*
ugly case is programs that do a mkstemp() and then unlink() the result,
confident that the kernel will clean up when the process exits, as
there is no longer a file system object to reference....

Of course, if you say "no network connections" and "no open files",
the problem gets a lot easier - but also quickly devolving into a
master's thesis research project rather than anything useful....

Bottom line:  Don't even *think* about changing the scheduler etc
until you have a functional way to actually move the process.  Doesn't
matter if you use a kvm approach, or containers, or whatever - if
you can't do the migrate, you can't even *test* your code that decides
which process to migrate.....
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160216/0a8255e9/attachment.bin 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-16 16:35         ` Valdis.Kletnieks at vt.edu
@ 2016-02-17  4:51           ` Nitin Varyani
  2016-02-17  6:10             ` Valdis.Kletnieks at vt.edu
  0 siblings, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-17  4:51 UTC (permalink / raw)
  To: kernelnewbies

if you say "no network connections" and "no open files",
the problem gets a lot easier - but also quickly devolving into a
master's thesis research project rather than anything useful....

Actually it is a master's thesis research project as of now. I am ready to
boil down to the most basic implementation of distributed linux kernel.
Assume there is no network connection and no open files. We can drop even
more assumptions if it becomes complicated. Once this basic implementation
is successful, we can go ahead with a more complicated version. The next
task is to integrate the migration code in the linux kernel. What is the
most easy way of implementing it.

On Tue, Feb 16, 2016 at 10:05 PM, <Valdis.Kletnieks@vt.edu> wrote:

> On Tue, 16 Feb 2016 09:42:52 +0100, Dominik Dingel said:
>
> > I wouldn't see things that dark. Also this is an interesting puzzle.
>
> Just pointing out *very real* issues that will require solution, unless
> you add strict bounds like "cannot be using network connections".
>
> Heck, even open files get interesting.  How do you ensure that the
> file descriptor returned by mkstemp() remains valid? (The *really*
> ugly case is programs that do a mkstemp() and then unlink() the result,
> confident that the kernel will clean up when the process exits, as
> there is no longer a file system object to reference....
>
> Of course, if you say "no network connections" and "no open files",
> the problem gets a lot easier - but also quickly devolving into a
> master's thesis research project rather than anything useful....
>
> Bottom line:  Don't even *think* about changing the scheduler etc
> until you have a functional way to actually move the process.  Doesn't
> matter if you use a kvm approach, or containers, or whatever - if
> you can't do the migrate, you can't even *test* your code that decides
> which process to migrate.....
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160217/fee2dfc8/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-17  4:51           ` Nitin Varyani
@ 2016-02-17  6:10             ` Valdis.Kletnieks at vt.edu
  2016-02-17  6:37               ` Miles Fidelman
  2016-02-17 10:35               ` Nitin Varyani
  0 siblings, 2 replies; 18+ messages in thread
From: Valdis.Kletnieks at vt.edu @ 2016-02-17  6:10 UTC (permalink / raw)
  To: kernelnewbies

On Wed, 17 Feb 2016 10:21:35 +0530, Nitin Varyani said:

> Actually it is a master's thesis research project as of now. I am ready to
> boil down to the most basic implementation of distributed linux kernel.
> Assume there is no network connection and no open files. We can drop even
> more assumptions if it becomes complicated. Once this basic implementation
> is successful, we can go ahead with a more complicated version. The next
> task is to integrate the migration code in the linux kernel. What is the
> most easy way of implementing it.

If you get it to where you can migrate a process on command controlled by
a userspace process, the scheduler part will be trivial.

And note that the choice of which process to migrate where is sufficiently
"policy" that it belongs in userspace - see how cgroups and containers are
kernel mechanisms that are controlled by userspace.  You want to follow that
model if you intend for this to be upstreamed rather than just another dead
master's thesis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160217/cf590d8d/attachment-0001.bin 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-17  6:10             ` Valdis.Kletnieks at vt.edu
@ 2016-02-17  6:37               ` Miles Fidelman
  2016-02-17 10:35               ` Nitin Varyani
  1 sibling, 0 replies; 18+ messages in thread
From: Miles Fidelman @ 2016-02-17  6:37 UTC (permalink / raw)
  To: kernelnewbies



On 2/17/16 1:10 AM, Valdis.Kletnieks at vt.edu wrote:
> On Wed, 17 Feb 2016 10:21:35 +0530, Nitin Varyani said:
>
>> Actually it is a master's thesis research project as of now. I am ready to
>> boil down to the most basic implementation of distributed linux kernel.
>> Assume there is no network connection and no open files. We can drop even
>> more assumptions if it becomes complicated. Once this basic implementation
>> is successful, we can go ahead with a more complicated version. The next
>> task is to integrate the migration code in the linux kernel. What is the
>> most easy way of implementing it.
> If you get it to where you can migrate a process on command controlled by
> a userspace process, the scheduler part will be trivial.
>

If you want some ideas about distributed process scheduling, you might 
want to explore how Erlang's run-time works - it's all about massive 
concurrency and scheduling processes (well, really light-weight 
processes) across multiple cores.  If you google "distributed process 
scheduling erlang" you'll also find some work about process scheduling 
across clusters, particularly for gaming environments.

How much might be applicable in a linux kernel environment is unclear - 
but, then, it's your research project.

Miles Fidelman


In theory, there is no difference between theory and practice.
In practice, there is.  .... Yogi Berra

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-17  6:10             ` Valdis.Kletnieks at vt.edu
  2016-02-17  6:37               ` Miles Fidelman
@ 2016-02-17 10:35               ` Nitin Varyani
  2016-02-17 15:32                 ` Greg KH
  1 sibling, 1 reply; 18+ messages in thread
From: Nitin Varyani @ 2016-02-17 10:35 UTC (permalink / raw)
  To: kernelnewbies

Having got some clarity of what I have to do, I want to now proceed
for a step by step development. What all I know about linux kernels is
a theoretical understanding of its various components (from the book
of Robert Love) but as far as practical is concerned, I know the
following things:
1) Linking modules dynamically to kernel at run time ( outside source
tree and inside source tree)
2) Adding system calls

Rather than trying to go blind folded in getting practical experience
of linux programming, I want to gain experience only in relation to my
task of creating a distributed process scheduler. What all things
should I try to work with to understand the kernel CFS scheduler well?
Please provide sufficient literature for the practical work.
Also what is the best place to learn about implementing linux containers?


On Wed, Feb 17, 2016 at 11:40 AM,  <Valdis.Kletnieks@vt.edu> wrote:
> On Wed, 17 Feb 2016 10:21:35 +0530, Nitin Varyani said:
>
>> Actually it is a master's thesis research project as of now. I am ready to
>> boil down to the most basic implementation of distributed linux kernel.
>> Assume there is no network connection and no open files. We can drop even
>> more assumptions if it becomes complicated. Once this basic implementation
>> is successful, we can go ahead with a more complicated version. The next
>> task is to integrate the migration code in the linux kernel. What is the
>> most easy way of implementing it.
>
> If you get it to where you can migrate a process on command controlled by
> a userspace process, the scheduler part will be trivial.
>
> And note that the choice of which process to migrate where is sufficiently
> "policy" that it belongs in userspace - see how cgroups and containers are
> kernel mechanisms that are controlled by userspace.  You want to follow that
> model if you intend for this to be upstreamed rather than just another dead
> master's thesis.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-17 10:35               ` Nitin Varyani
@ 2016-02-17 15:32                 ` Greg KH
  2016-02-18  4:35                   ` Nitin Varyani
  0 siblings, 1 reply; 18+ messages in thread
From: Greg KH @ 2016-02-17 15:32 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Feb 17, 2016 at 04:05:17PM +0530, Nitin Varyani wrote:
> Rather than trying to go blind folded in getting practical experience
> of linux programming, I want to gain experience only in relation to my
> task of creating a distributed process scheduler. What all things
> should I try to work with to understand the kernel CFS scheduler well?
> Please provide sufficient literature for the practical work.
> Also what is the best place to learn about implementing linux containers?

Why are you asking other people to do your research work for you?
That's pretty rude, does your professor know this is what you are doing?

greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-17 15:32                 ` Greg KH
@ 2016-02-18  4:35                   ` Nitin Varyani
  2016-02-18  9:31                     ` Mulyadi Santosa
  2016-02-19  5:06                     ` Greg KH
  0 siblings, 2 replies; 18+ messages in thread
From: Nitin Varyani @ 2016-02-18  4:35 UTC (permalink / raw)
  To: kernelnewbies

@ Greg: Since I am very new to the field, with the huge task in hand
and a short time span of 3 months given for this project, I am looking
for specific directions from the linux experts to work on. As far as
efforts are concerned, I am taking out hours together to research into
this area. I do not mind telling this to my professor.  Still, I am
always looking for improvement. I will try to put more endeavor and
seek as less help as possible. I hope you will not mind my reply.
Thanks.

On Wed, Feb 17, 2016 at 9:02 PM, Greg KH <greg@kroah.com> wrote:
> On Wed, Feb 17, 2016 at 04:05:17PM +0530, Nitin Varyani wrote:
>> Rather than trying to go blind folded in getting practical experience
>> of linux programming, I want to gain experience only in relation to my
>> task of creating a distributed process scheduler. What all things
>> should I try to work with to understand the kernel CFS scheduler well?
>> Please provide sufficient literature for the practical work.
>> Also what is the best place to learn about implementing linux containers?
>
> Why are you asking other people to do your research work for you?
> That's pretty rude, does your professor know this is what you are doing?
>
> greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-18  4:35                   ` Nitin Varyani
@ 2016-02-18  9:31                     ` Mulyadi Santosa
  2016-02-19  5:06                     ` Greg KH
  1 sibling, 0 replies; 18+ messages in thread
From: Mulyadi Santosa @ 2016-02-18  9:31 UTC (permalink / raw)
  To: kernelnewbies

On Thu, Feb 18, 2016 at 11:35 AM, Nitin Varyani <varyani.nitin1@gmail.com>
wrote:

> @ Greg: Since I am very new to the field, with the huge task in hand
> and a short time span of 3 months given for this project, I am looking
> for specific directions from the linux experts to work on. As far as
> efforts are concerned, I am taking out hours together to research into
> this area. I do not mind telling this to my professor.  Still, I am
> always looking for improvement. I will try to put more endeavor and
> seek as less help as possible. I hope you will not mind my reply.
> Thanks.
>
> On Wed, Feb 17, 2016 at 9:02 PM, Greg KH <greg@kroah.com> wrote:
> > On Wed, Feb 17, 2016 at 04:05:17PM +0530, Nitin Varyani wrote:
> >> Rather than trying to go blind folded in getting practical experience
> >> of linux programming, I want to gain experience only in relation to my
> >> task of creating a distributed process scheduler. What all things
> >> should I try to work with to understand the kernel CFS scheduler well?
> >> Please provide sufficient literature for the practical work.
> >> Also what is the best place to learn about implementing linux
> containers?
> >
> > Why are you asking other people to do your research work for you?
> > That's pretty rude, does your professor know this is what you are doing?
> >
> > greg k-h
>
>

Dear Nitin

Again, please don't top post :) That's considered rude too, at least here :)

I can't speak on behalf of Greg, but I guess the basic idea of why people
gather in this mailing list is to share ideas and discuss, but not giving
very specific guidance. If that's the goal, this list would be named
"kernel mentoring", don't you agree? :)

So, if we follow this "discussion area" rule, I can give you ideas:
- maybe your scope of work is too wide. Try to be more specific. 3 months
time span is very short compared to what you're going to do (IIUC). As
other already pointed, maybe you can piggy back on Erlang project and
enhance their work instead?

- do you have solid background of kernel programming, especially related to
scheduler? if not, try to get a grasp quickly using code navigator e.g
cscope or lxr.linux.no and play around with the code first. It might give
direct experience on how code works and at the same time how kernel build
mechanism work

Hope it helps....

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160218/bd6bf1f1/attachment.html 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-18  4:35                   ` Nitin Varyani
  2016-02-18  9:31                     ` Mulyadi Santosa
@ 2016-02-19  5:06                     ` Greg KH
  2016-02-19 15:31                       ` Ruben Safir
  1 sibling, 1 reply; 18+ messages in thread
From: Greg KH @ 2016-02-19  5:06 UTC (permalink / raw)
  To: kernelnewbies

On Thu, Feb 18, 2016 at 10:05:40AM +0530, Nitin Varyani wrote:
> @ Greg: Since I am very new to the field, with the huge task in hand
> and a short time span of 3 months given for this project,

3 months?  That's way too short, this is a multi-year/decade type
research project.  You can barely write a "simple" kernel driver in 3
months start to finish unless you _really_ know what you are doing.

I suggest get a new professor / advisor, this one doesn't seem to
realize the scope of the work involved :)

good luck!

greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Distributed Process Scheduling Algorithm
  2016-02-19  5:06                     ` Greg KH
@ 2016-02-19 15:31                       ` Ruben Safir
  0 siblings, 0 replies; 18+ messages in thread
From: Ruben Safir @ 2016-02-19 15:31 UTC (permalink / raw)
  To: kernelnewbies

On Thu, Feb 18, 2016 at 09:06:05PM -0800, Greg KH wrote:
> On Thu, Feb 18, 2016 at 10:05:40AM +0530, Nitin Varyani wrote:
> > @ Greg: Since I am very new to the field, with the huge task in hand
> > and a short time span of 3 months given for this project,
> 
Are you formally trained froma  university?  I'm just asking because I know
that many core coders don't even have a college background in comp sci.  
So I'm just curious as to the path you took.

Reuvain


> 3 months?  That's way too short, this is a multi-year/decade type
> research project.  You can barely write a "simple" kernel driver in 3
> months start to finish unless you _really_ know what you are doing.
> 
> I suggest get a new professor / advisor, this one doesn't seem to
> realize the scope of the work involved :)
> 
> good luck!
> 
> greg k-h
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

-- 
So many immigrant groups have swept through our town
that Brooklyn, like Atlantis, reaches mythological
proportions in the mind of the world - RI Safir 1998
http://www.mrbrklyn.com 

DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
http://www.nylxs.com - Leadership Development in Free Software
http://www2.mrbrklyn.com/resources - Unpublished Archive 
http://www.coinhangout.com - coins!
http://www.brooklyn-living.com 

Being so tracked is for FARM ANIMALS and and extermination camps, 
but incompatible with living as a free human being. -RI Safir 2013

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-02-19 15:31 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-15 16:05 Distributed Process Scheduling Algorithm Nitin Varyani
2016-02-15 16:52 ` Henrik Austad
2016-02-16  4:48   ` Nitin Varyani
2016-02-16  5:13     ` Valdis.Kletnieks at vt.edu
2016-02-16  8:42       ` Dominik Dingel
2016-02-16  9:46         ` Nitin Varyani
2016-02-16 10:43           ` Nitin Varyani
2016-02-16 11:22             ` Dominik Dingel
2016-02-16 16:35         ` Valdis.Kletnieks at vt.edu
2016-02-17  4:51           ` Nitin Varyani
2016-02-17  6:10             ` Valdis.Kletnieks at vt.edu
2016-02-17  6:37               ` Miles Fidelman
2016-02-17 10:35               ` Nitin Varyani
2016-02-17 15:32                 ` Greg KH
2016-02-18  4:35                   ` Nitin Varyani
2016-02-18  9:31                     ` Mulyadi Santosa
2016-02-19  5:06                     ` Greg KH
2016-02-19 15:31                       ` Ruben Safir

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.