Re: [patch 04/13] syslets: core code

Davide Libenzi
2007-02-24T21:10:35Z

On Sat, 24 Feb 2007, Ingo Molnar wrote:

> * Davide Libenzi <davidel@xmailserver.org> wrote:
>
> > > +asmlinkage long
> > > +sys_threadlet_on(unsigned long restore_stack,
> > > + unsigned long restore_eip,
> > > + struct async_head_user __user *ahu)
>
> > > +asmlinkage long sys_threadlet_off(void)
>
> > If we have a new syscall that does the exec, we can save the two
> > on/off calls.
>
> the on/off calls are shaped in a way that makes them ultimately
> vsyscall-able - the kernel only needs to know about the fact that we are
> in a threadlet (so that the scheduler can do its special
> push-head-to-another-context thing) - and this can be signalled via a
> small user-space-side info structure as well, put into the TLS.

IMO it's not a matter of speed. We'll have those two new syscalls, that I
don't see other practical use for. IMO the best thing would be to hide all
inside the sys_threadlet_exec (or whatever name).

> > [...] Also, the complete_thread() thingy can be done automatically
> > from inside the kernel upon function return, by hence making the
> > threadlet function look like a normal thread function:
>
> yeah - and that's how it works in my current codebase already,
> threadlet_off() takes a 'completion event' pointer as well, and the ahu.
> I'll release v4 so that you can have a look.

Ok. Will look into it...

- Davide