[okl4-developer] Roottask pagefault

Ryan Heffernan ryan.heffernan at nicta.com.au
Wed Feb 20 18:37:46 EST 2008


On Wed, 2008-02-20 at 17:07 +1100, Geoffrey Lee wrote:
> On Wed, Feb 20, 2008 at 02:54:34PM +1100, Ryan Heffernan wrote:
> > I am currently attempting to port application that was written for an
> > older version of L4 and Iguana (from 2005) to the current OKL4/Iguana
> > release and have a successful compilation but whenever I try to boot the
> > image and run the an example completely unrelated to the new stuff (the
> > multithread example) I get a roottask pagefault. The multithread example
> > works fine without my new code (ie. when I comment out the code in the
> > Iguana SConstruct that adds my new application to the build). The error
> > always looks like this:
> > 
> > vbase is 0xa4000000, vend is 0xcfffffff
> > addr is 0xa4000000, vbase is 0xa4000000
> > roottask read pagefault at 33cc33c8, ip=800023e0 - deny
> > 
> > I have determined that the pagefault is thrown by the get_pd function in
> > iguana_server.c, which is called by iguana_pd_ext_l4id_impl function in
> > the same file. Would you have any ideas as to the cause or solution to
> > this error? 
> 
> 
> Hi
> 
> I think the problem is that you may be passing in an invalid pd
> reference, the pd_ref_t appears to be cast to a pd structure pointer
> in the Iguana server directly then passed to the is_pd() macro
> to be dereferenced.
> 
> 	-gl
> > 
> > 
> > _______________________________________________
> > Developer mailing list
> > Developer at okl4.org
> > https://lists.okl4.org/mailman/listinfo/developer
> > 
> 
Thanks for the reply!

It does appear that this is the problem (it's a garbage value), but what
is troubling me is that I can't find anywhere in the code I've added
that makes the call that provides this pd_ref value to the iguana
server. However, when I examine the tcb of my server in the gumstix
kernel debugger, the message is right there in the message register. So
I guess now my question is if you know of any feature of iguana (or the
build system) that sends messages to the iguana server on behalf of
other components (ie. to set up memory, protection domains, etc). 

Ryan 




More information about the Developer mailing list