Commit Graph
23 Commits
Author SHA1 Message Date
Keir Fraser 9cdbfef570 minios: blkfront should set protocol node
From: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2008-09-24 10:18:20 +01:00
Keir Fraser ce5c899f22 stubdom: use host's gcc
This makes stubdom use the host's gcc instead of downloading/compiling
binutils+gcc.  That requires a bunch of changes and even uncovered a
few bugs, but saves a lot of time.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-04 17:47:11 +01:00
Keir Fraser 1e25c34bdc minios: proper frees are now handled, so drop the FIXME comment
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-01 14:50:35 +01:00
Keir Fraser a2c7db64f5 Add PV-GRUB
This fetches GRUB1 sources, applies the {graphical, print function,
save default, and ext3_256byte} patches from debian, and applies a
patch to make it work on x86_64 and port it to Mini-OS.  By using
libxc, PV-GRUB can then "kexec" the loaded kernel from inside the
domain itself, hence permitting to avoid the security-concerned
pygrub.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-18 09:36:47 +01:00
Keir Fraser 0a9b2d786b stubdom: fix using minios frontends directly when libc is actived
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-18 09:32:50 +01:00
Keir Fraser c68ffdc4fa minios: add proper shutdown facilities
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-09 13:26:30 +01:00
Keir Fraser 226fe60191 minios: add a blkfront synchronous interface
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-05 13:03:31 +01:00
Keir Fraser c64bf46b1f minios: free blkfront resources on error/shutdown
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-05-12 11:01:21 +01:00
Keir Fraser cc489fb3c4 minios: fix thread safety of xenbus watches by requiring callers to
provide their own queue of events, because else we can not dispatch to
watchers running in parallel.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-05-06 13:34:52 +01:00
Keir Fraser aae7fe3fa4 stubdom: add asynchronous disk flush support
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-04-05 22:20:25 +01:00
Keir Fraser d3ca7ebecc minios: blkfront_aio_poll may reenter
if the callback calls blkfront_sync for instance.
In such a case, we would see responses and hence release grants
several times. We need to be more synchronous and stop when we detect
that we have re-entered.
This fixes HVM restore with stubdomains.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-03-26 13:15:00 +00:00
Keir Fraser b44e418cc1 minios: get VBD CD/removable/RO info
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-03-20 17:48:02 +00:00
Keir Fraser b9d1950675 minios: Fix lost events
evtchn_bind_interdomain used to clear any already pending event before
binding a handler, because else the handler may be called before it is
ready. That however leads to missed events, which I had to workaround
for the HVM case.

This changes the semantics of bind_evtchn, and thus of all the
event channel binding functions (bind_virq, evtchn_alloc_unbound,
evtchn_bind_interdomain) into not unmasking the event itself, hence
letting the caller initialize properly before unmasking the port (e.g.
record the port number in an appropriate place).

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-03-18 11:29:18 +00:00
Keir Fraser ca517cba30 minios: drop unused xenblk_rxidx function
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-14 09:24:35 +00:00
Keir Fraser 20457bb881 stubdom: optimize block io completion polling by not polling all the
time; only when some requests have completed.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-14 09:23:14 +00:00
Keir Fraser 0243b256d6 Add stubdomain support. See stubdom/README for usage details.
- Move PAGE_SIZE and STACK_SIZE into __PAGE_SIZE and __STACK_SIZE in
  arch_limits.h so as to permit getting them from there without
  pulling all the internal Mini-OS defines.
- Setup a xen-elf cross-compilation environment in stubdom/cross-root
- Add a POSIX layer on top of Mini-OS by linking against the newlib C
  library and lwIP, and implementing the Unixish part in mini-os/lib/sys.c
- Cross-compile zlib and libpci too.
- Add an xs.h-compatible layer on top of Mini-OS' xenbus.
- Cross-compile libxc with an additional xc_minios.c and a few things
  disabled.
- Cross-compile ioemu with an additional block-vbd, but without sound,
  tpm and other details.  A few hacks are needed:
  - Align ide and scsi buffers at least on sector size to permit
  direct transmission to the block backend. While we are at it, just
  page-align it to possibly save a segment. Also, limit the scsi
  buffer size because of limitations of the block paravirtualization
  protocol.
  - Allocate big tables dynamically rather that letting them go to
  bss: when Mini-OS gets installed in memory, bss is not lazily
  allocated, and doing so during Mini-OS is unnecessarily trick while
  we can simply use malloc.
- Had to change the Mini-OS compilation somehow, so as to export
  Mini-OS compilation flags to the Makefiles of libxc and ioemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-12 14:35:39 +00:00
Keir Fraser 9ea04252b6 minios: Fix blkfront grant map leak
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-07 09:16:20 +00:00
Keir Fraser 563f5ebfcc minios: Support net/block backend in domU
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-07 09:15:59 +00:00
Keir Fraser 7b12579460 minios: Fix bug when blkfront reading into zero-mapped buffer
by just poking the page.
No need to use virtual_to_mfn() for the ring since that is a real page.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-01-29 15:18:27 +00:00
Keir Fraser fbb0b88ad8 minios: permit blkfront to write from mapped memory
Missing call to virtual_to_mfn

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-01-23 18:05:27 +00:00
Keir Fraser c69b2fa1c4 minios: permit blkfront to write from mapped memory
by adding a virtual_to_mfn macro

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-01-22 14:20:37 +00:00
Keir Fraser e5445ffa54 minios, blkfront: set default block path.
remove unnecessary path head stripping.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-01-22 09:46:15 +00:00
Keir Fraser 9d220744e6 minios: add blkfront
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-01-17 16:41:46 +00:00