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

Ingo Molnar
2007-02-24T07:10:45Z

* 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.

> [...] 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.

Ingo