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

Re: [MirageOS-devel] Issues with CLOCK on xen

On 2 Dec 2014, at 12:36, Toby Moore <toby.moore.0@xxxxxxxxx> wrote:
> Hi everyone,
> I've been following this mailing list for a while now. I've finally managed 
> to get a simple blog running on Mirage and AWS. I've put up a couple of posts 
> of my experience (http://is-awesome.net) but I doubt there'll be anything 
> that's new or exciting to readers here.

Not at all -- I just discovered the Pure CSS framework from reading it -- I was 
just wondering what to do while converting my own blog :-)

> One outstanding issue is that I can't seem to get the CLOCK working properly 
> on AWS. It's fine for a unix build, but I don't have another xen host 
> available right now and the deploy test cycle to AWS is pretty painful. 
> Trying to get the current time on AWS gets me this:
>    Unsupported function gmtime called in Mini-OS kernel
>    Do_exit called!
>    base is 0x0 Page fault at linear address 8, rip cb67, regs 
> 000000000034f908, sp 34f9b0, our_sp 000000000034f8c8, code 0
>    Page fault in pagetable walk (access to invalid memory?).

That's almost certainly some unexpected fallout due to the switch to 
MiniOS-as-a-library.  We'll definitely want this working on Amazon's Xen 
interface version! Any chance you could put this bug report up on 
https://github.com/mirage/mirage/issues ?

> This is built with OCaml 4.01.0 with these OPAM packages:
>    io-page                    1.1.1  Allocate memory pages suitable for 
> aligned I/O
>    mirage                     2.0.1  The Mirage library operating system
>    mirage-clock-unix          1.0.0  A Mirage-compatible Clock library for 
> Unix
>    mirage-clock-xen           1.0.0  A Mirage-compatible Clock library for Xen
>    mirage-conduit             2.0.0  Virtual package for the Mirage Conduit 
> transpo
>    mirage-console             2.0.0  A Mirage-compatible Console library for 
> Xen an
>    mirage-dns                 2.0.0  Virtual package for the Mirage DNS 
> transports
>    mirage-http                2.0.0  Mirage HTTP client and server driver for 
> Unix
>    mirage-net-unix            1.1.1  Ethernet network driver for Mirage, 
> using tunt
>    mirage-net-xen             1.1.3  Ethernet network device driver for 
> Mirage/Xen
>    mirage-types               2.0.1  Module type definitions for 
> Mirage-compatible
>    mirage-types-lwt           2.0.1  Lwt module type definitions for 
> Mirage-compati
>    mirage-unix                2.0.0  Mirage OS library for Unix compilation
>    mirage-xen                 2.0.0  Mirage OS library for Xen compilation
>    mirage-xen-minios          0.4.2  Xen MiniOS guest operating system library
> I'm not directly passing a clock device, my config.ml has these bits in it:
>    let main =
>      foreign "Unikernel.Main" (http @-> console @-> kv_ro @-> kv_ro @-> job)
>    let unix_libs =
>      match get_mode () with
>      | `Unix -> ["mirage-clock-unix"]
>      | _ -> []
>    let () =
>        add_to_ocamlfind_libraries unix_libs;
>        ...
> This is mostly copied out of the skeleton examples. I know the clock 
> interface has been changing a bit recently but it works fine under unix. My 
> guess is that the clock driver is skipped because it's not referenced (except 
> in my code) but I'm not sure how to do that properly. How can I force it to 
> be included?

Over to Thomas for this -- the CLOCK interface is a little special since it's 
only ever instantiated once.

MirageOS-devel mailing list



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