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

[MirageOS-devel] Mirage questions from writing a REST service

I'm writing a test Mirage service for queuing files. It's not using
ThomasG's merge-queues - I'm just trying the low-level FS stuff first.

Some problems I found:

1. Running as a --unix process, I initially got a download speed of
230 KB/s. Increasing the size of the chunks I was reading from the Fat
filesystem (a disk.img file) from 512 bytes to 1MB, I was able to
increase this to 3 MB/s. Both seem rather low. Apache on the same
machine gets 615 MB/s!

I tried reproducing it with mirage-skeleton/static_website, but it
didn't want to know:

$ git clone https://github.com/mirage/mirage-skeleton.git
$ cd mirage-skeleton/static_website
$ FS=fat NET=socket mirage configure --unix

[ note: my actual test file is not all zeros, but for this email... ]

$ dd if=/dev/zero of=htdocs/data bs=1024 count=2
$ ./make-fat1-image.sh
$ make
$ ./mir-www
Manager: connect
Manager: configuring
Manager: socket config currently ignored (TODO)
Fatal error: exception Failure("fat2")

2. To be able to use the FS inferface, I had to specialise it like this:

module type FS = V1_LWT.FS with
  type page_aligned_buffer = Cstruct.t and
  type block_device_error = Fat.Fs.block_error

This means my unikernel only works with Fat. If I don't do this, I
can't report or log error messages. I guess this is also why the test
above gave such a useless error. Are there any plans to make error
handling easier?

3. In my tags file, I use:

  not <main.*>: warn(A)

Would be nice if the generated main.ml compiled without warnings (this
might be related to the previous point, as it's the error details that
it is ignoring).

4. Can I get mirage to generate a Makefile that builds and runs my
unit-tests? I guess I can't run the unit-tests when in --xen mode,
because some modules have conflicting names, but it would be nice in
--unix mode at least.


Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



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