[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] caml stubdom crashes





On 4/2/09 12:22 PM, "Patrick Colp" <pjcolp@xxxxxxxxx> wrote:

> Alex Zeffertt wrote:
>> Hello ocaml minios stubdomain experts (that's narrowed down the list
>> somewhat!)
>> 
>> I've been playing with the caml version of the "hello world" example
>> stubdomain that can be found in xen-unstable.hg/stubdom/caml/.
>> 
>> If I make the following trivial modification to stubdom/caml/hello.ml
>> the stub domain page faults.  According to addr2line the page fault is
>> in ungetc.c:0.
>> 
>> --- a/stubdom/caml/hello.ml    Mon Mar 30 11:42:16 2009 +0100
>> +++ b/stubdom/caml/hello.ml    Thu Apr 02 15:15:45 2009 +0100
>> @@ -1,4 +1,6 @@
>> +let yr = 2009
>> +
>>  let main arg =
>> -  Printf.printf "Hello, world!\n%!."
>> +  Printf.printf "Hello, world %d!\n%!." yr
>> 
>>  let _ = Callback.register "main" main
>> 
>> 
>> Without the above change the stub domain runs as expected, i.e. it does
>> not page fault.
>> 
>> I suspect the problem is that the caml-stubdom target in
>> stubdom/caml/Makefile compiles stubdom/caml/hello.ml and links it with
>> $(CAMLLIB)/libasmrun.a.  But this is a library compiled for the
>> development machine platform (linux-i386-glibc) not for the stubdomain
>> platform (minios-i386-newlib).
>>

I don't think this is a linux-i386-glibc vs minios-i386-newlib issue but
rather the FORTIFY compiler options that introduce the
__fprintf_chk/__sprintf_chk funcs.  There is still something about the
behavior of the FORTIFY options that I am still not accounting for.  As
Patrick points out, special ports of ocaml should not be (and have not been)
necessary.
 
>> Maybe the original hello.ml only worked through luck, and the fact that
>> it used so very little of the ocaml language.
> 
> What environment did you use to compile the stubdom? I tried using Ubuntu
> with George Coker's patch and got the same result as you (page faulting).
> Interestingly, I could use a %s and a string and that seems to work OK, but
> not %d with an int.
> 
> When I instead used Debian to compile the stubdom (which requires no
> patch), then I could compile and run your code just fine (no page faults).
> Maybe this is the problem you're having?
> 
> 
>> In order to run a non trivial ocaml application in a stubdomain (e.g.
>> ocaml xenstored) do I need to port ocaml to minios-i386-newlib?
> 
> No, it should be possible as is. In fact, I've gotten my OCaml XenStore to
> run in a caml-stubdom (compiled in a Debian domain).
> 
> I'll soon be releasing a patch against the recently released disaggregated
> C xenstored stuff that uses my OCaml XenStore in a caml-stubdom instead.
> 
> 
> Patrick

-- 
George S. Coker, II <gscoker@xxxxxxxxxxxxxx>



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.