Subject: Re: [vserver] Kernel Thread's accounted to a User Context
From: "Daniel Hokka Zakrisson" <daniel@hozac.com>
Date: Fri, 30 Nov 2007 18:07:04 +0100 (CET)

Eric Keller wrote:
> What I'm trying to do is to run a kernel thread, but have it associated
> with a particular user's context.  The reason is this - I want to run
> Click in the kernel, but allow each user to provide their own click
> graph.  The root context will manage the whole process, performing
> checks, then merging the various click graphs into a single click graph,
> and installing that in the kernel.  Each user graph would be run within
> their own kernel thread.

Why would it need to be associated with the context? How would it be started?

> I've looked through the vserver code and before I start doing any
> modifications, I wanted to post to the group to see if anyone has any
> guidance.  It appears that include/linux/vs_context.h provides all of
> the functionality I'd need.  So I would start the kernel thread as
> usual, then I would transfer it (by changing vx_info and xid, from
> task_struct) from the kernel's vx_info to a particular user context's
> vx_info (I would get the vx_info with lookup_vx_info(xid)).

All those values are inherited from the parent, so this kind of depends on
the answer to my second question above.

Note that there are more values to consider. vx_migrate_task handles all
this for you, so you might want to look at using that...

> Does that sound right, or where should I be looking?
>
> Thanks,
> Eric Keller

-- 
Daniel Hokka Zakrisson