Setting task priority in loader configuration script

Peter Howard pjh at northern-ridge.com.au
Tue Jun 24 00:40:57 CEST 2014


On Mon, 2014-06-23 at 22:00 +0200, Adam Lackorzynski wrote:
> Hi,
> 
> On Mon Jun 23, 2014 at 12:43:21 +1000, Peter Howard wrote:
> > I've looked through the documentation, but it doesn't seem clear how you
> > set the priority of a task as you create it from a .cfg script.
> > 
> > I've tried:
> > 
> > loader:start({caps = {
> >                ...
> >                },
> >                l4re_dbg = L4.Dbg.Warn,
> >                log = {"foo", "red" },
> >                priority = 100},
> >          "rom/foo");
> > 
> > But I'm not seeing any difference from that, with priority < 0x10, >
> > 0x10, or unset.  (I got the 0x10 value from
> > 
> > So, is that the correct way?  If now, what is the correct way to specify
> > priority?
> 
> It works like this:
> 
> loader:start({caps = {
>                ...
>                },
>                log = {"foo", "red" },
>                scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 0x18, 0x8) },
>                "rom/foo");
> 
> The 0x8 is the base priority and 0x18 is the upper limit. Any prio in
> foo will be increased by 8 and capped at 0x18 (regarding the local view
> of the loader, which is likely the global view).

Thanks for that.  Now I know what to look for I can see it in most of
the example .cfg files :-)

However . . . in the examples the scheduler line is always commented
out.  When I add it I get a runtime error:

        Ned: ERROR: rom/cc-ipc.cfg:51: runtime error Invalid argument (-22)
        
The line is exactly as you added it above.

Thoughts?

Thanks, again.

-- 
Peter Howard <pjh at northern-ridge.com.au>




More information about the l4-hackers mailing list